跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

【逆向】Delphi程序逆向之熊猫烧香病毒分析 - SunsetR

精选回复

发布于

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 流程图

5bhzzqxcvtg3090.png

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 初始化自校验

trip0qne3cm3091.png

3.3.2 主功能模块1:自拷贝,bat自删除

判断当前路径是否存在ini配置文件,存在则删除

yy3213verin3092.png

如果当前文件未被感染,并且不是"drivers\spcolsv.exe",则自拷贝并运行

4if4z4tvd1g3094.png

mbdxiuizmko3095.png

如果是被感染的文件,则从自身释放原文件,创建.bat删除感染文件,运行原文件后自删除

bbp3bc2kydi3096.png

xtobaqep4s53098.png

如果"drivers\spcolsv.exe"正在运行则程序退出,否则删除"drivers\spcolsv.exe"后重新创建,并运行。

ym5obdoeqof3099.png

3.3.3 主功能模块2:

递归遍历,感染Exe等文件

ebceu14utad3101.png

2azzxejvrcc3102.png

p0lj4owis4d3103.png

递归遍历,感染Html等文件

axv415x1elv3104.png

uiq5uoyup1t3105.png

删除.GHO系统备份文件

kwr5oafetqv3107.png

在每个文件夹目录下生成ini配置文件,更新当前日期

31q1j3nzf113108.png

aokun22zxda3109.png

设置定时器,每6秒执行一次,在磁盘根目录生成setup.exe和autorun.inf文件

hvsthlgqnru3110.png

12jt2uluksy3111.png

ijdryrhimfp3113.png

djd1qaldqyf3114.png

创建线程,通过139,445端口感染局域网主机。

iokmtkx0msp3115.png

自拷贝到网络主机共享目录,创建计划任务执行“GameSetup.exe”

ggowzby0yhs3117.png

svtkpnptwu33118.png

3.3.4 主功能模块3:

创建定时器,执行不同任务

31r5ewhyuso3119.png

结束杀软,任务管理器等进程

afyusaer0bx3120.png

设置Run注册表自启动

ahn1etkr5pu3121.png

设置隐藏文件不显示

 jfbioenntjb3123.png

解密URL,下载并执行

l3slaofp1rt3124.png

删除共享

lbo1aql4rlp3125.png

停止并删除杀软服务

wqdortzrhft3127.png

 

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")

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。