【逆向】Delphi程序逆向之熊猫烧香病毒分析
1、前言
本文主要用于记录Delphi程序逆向的一些方法和技巧,以及熊猫烧香病毒的分析过程。
2、分析技巧
2.1 使用IDR或DEDE加载Delphi程序,导出Map文件,将Map文件导入OD。
2.2 IDA加载Delphi程序后,根据实际情况修改编译器选项,ASCII字符串风格,增加代码可读性。
2.3 IDA添加Delphi程序签名文件,识别常用系统函数调用。
2.4 由于IDR对Delphi库函数的识别率比IDA高,动态调试时,可以配合OD/IDA一起使用。
2.5 常用Delphi系统库函数,可以查看Delphi system文件,也可以参考文末参考链接。
2.6 Delphi程序,使用fastcall调用约定,前2个参数使用eax,edx传递,其余参数从左到右依次压栈,堆栈由被调用者恢复。(由于编译器不同,寄存器,压栈顺序可能不同,视具体情况而定)
1 004529A9 push dword ptr ds:[455C00]; //参数3:"Hello" 2 004529AF push 452A18; ' ' //参数4:" " 3 004529B4 push dword ptr ds:[455C04]; //参数5:"World" 4 004529BA lea eax,[ebp-4] //参数1 5 004529BD mov edx,3 //参数2 6 004529C2 call @LStrCatN LStrCatN(lpBuff,3,"Hello"," ","World")
3、分析流程
3.1 流程图
3.2 静态分析
3.2.1 分析导入表
1 文件: 2 0x0000 "CreateFileA" 3 0x0000 "WriteFile" 4 0x0000 "ReadFile" 5 0x0000 "FindNextFileA" 6 网络: 7 0x0000 "socket" 8 0x0000 "connect" 9 0x0000 "InternetReadFile" 10 0x0000 "InternetOpenUrlA" 11 服务: 12 0x0000 "OpenServiceA" 13 0x0000 "OpenSCManagerA" 14 0x0000 "DeleteService" 15 0x0000 "ControlService" 16 0x0000 "CloseServiceHandle" 17 进线程: 18 0x0000 "CreateThread" 19 0x0000 22624 "TerminateProcess" 20 0x0000 "WinExec" 21 注册表: 22 0x0000 "RegSetValueExA" 23 0x0000 "RegDeleteValueA" 24 0x0000 "RegCreateKeyExA" 25 其它: 26 0x0000 "SetTimer" 27 0x0000 "NetRemoteTOD" 28 0x0000 "NetScheduleJobAdd" 29 0x0000 "URLDownloadToFileA" 30 0x0000 "OpenProcessToken" 31 0x0000 "LookupPrivilegeValueA" 32 0x0000 "AdjustTokenPrivileges" 33 0x0000 "WNetAddConnection2A" 34 0x0000 "WNetCancelConnectionA"
3.3 动态分析
3.3.1 初始化自校验
3.3.2 主功能模块1:自拷贝,bat自删除
判断当前路径是否存在ini配置文件,存在则删除
如果当前文件未被感染,并且不是"drivers\spcolsv.exe",则自拷贝并运行
如果是被感染的文件,则从自身释放原文件,创建.bat删除感染文件,运行原文件后自删除
如果"drivers\spcolsv.exe"正在运行则程序退出,否则删除"drivers\spcolsv.exe"后重新创建,并运行。
3.3.3 主功能模块2:
递归遍历,感染Exe等文件
递归遍历,感染Html等文件
删除.GHO系统备份文件
在每个文件夹目录下生成ini配置文件,更新当前日期
设置定时器,每6秒执行一次,在磁盘根目录生成setup.exe和autorun.inf文件
创建线程,通过139,445端口感染局域网主机。
自拷贝到网络主机共享目录,创建计划任务执行“GameSetup.exe”
3.3.4 主功能模块3:
创建定时器,执行不同任务
结束杀软,任务管理器等进程
设置Run注册表自启动
设置隐藏文件不显示
解密URL,下载并执行
删除共享
停止并删除杀软服务
Delphi常用库函数参考:
https://www.cnblogs.com/Little-Star/p/7541389.html
https://www.pediy.com/kssd/pediy06/pediy6843.htm
样本与调试文件下载:
https://files.cnblogs.com/files/SunsetR/熊猫烧香样本.zip 密码("SunsetBlogs")
转载于:https://www.cnblogs.com/SunsetR/p/11358388.html
- 点赞
- 收藏
- 分享
- 文章举报
- delphi下的编程
- Delphi结构类型包含String字符串使用需要注意的地方
- 第一个Delphi7.0 图形界面程序:显示唐诗静夜思
- Delphi里面的TCriticalSection对象的用法(如何使用锁)
- 在DELPHI程序中自动设置ODBC数据源
- delphi下ado连接vfp数据表的常用方法
- Delphi下DLL编程知识(转)
- Delphi 7中的四种消息框
- Delphi备忘录——基本语句
- 几个获取Windows系统信息的Delphi程序
- Delphi中Format与FormatDateTime函数详解
- 从Delphi开发环境的变迁说起
- Delphi多条件模糊查询的实现
- Delphi7 提示未注册解决解决办法,201-09-05日,亲测有效
- delphi7深入了解keybd_event
- Delphi7存取图像
- DELPHI中完成端口(IOCP)的简单分析(1)
- 使用Delphi编写棋牌类游戏 -- 基础篇(1)
- 使用Delphi编写棋牌类游戏 -- 基础篇(2)
- Delphi 2009 gif动画方法