【逆向】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       "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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值