python勒索病毒代码_勒索病毒GandCrab-v5.04完整分析

原程序分析

基本文件信息

ExeInfo 查看文件信息,PE32位且有壳

31c9a395797dc1004c08fa34f82785fb.png

Ollydbg 入口点代码如下

524118da4355ca8bfb7136d27091f647.png

脱壳后

单步跟到OEP,dump内存修复IAT,成功脱壳后用 Die 查看编译语言为 Delphi7

cb7e6583d6eee5f04fd01bf06deaa387.png

IDA 和 OD 的入口代码

069c65c9dd5c42a40d687e69231d6518.png

33695cd88fa64353cb6ecc115fcee8e8.png

反沙箱手段

消息循环

复杂的消息循环,使用了定时器消息,以及自定义 SendMsg,发送大量消息,使程序的运行时间延长

849b106cfc5fc77e5117af83669a3fbd.png

设备上下文

长时间消息循环到达核心代码区,里面又有许多的动态解密函数以及大量的GetDC和GetStockObject,既消耗了一定的时间又消耗了大量的内存资源

16c1a86d14ac0358a5bcbc7842026a34.png

2ea2c23815407fdc75b6638a24a9caea.png

Sleep

最关键的手段还是一个 Sleep(),Sleep了4分钟

8928f1940b04dfdbdca7afe3c400bd15.png

释放文件

Call下断

程序的很多代码都是动态解密的,不用跟具体的解密过程,直接在 call 跳转时下断即可。如图在释放文件的关键call下断,注意先 Patch 掉之前的 Sleep

2823445b6537f14704512668f1e7deb9.png

OD粗略分析

F7 跟过去分析,发现先是获取了一些 API,然后创建一个进程,再是写入数据到子进程

5ed0b1f55792ae28f6d456c99f024f00.png

7d62c439967bc841871c58b3d1d7bb66.png

IDA详细分析

使用ODScript的dma指令dump这段内存,然后IDA打开静态分析!先是GetProcAddress获取多个 API 的地址,然后CreateProcess创建自身路径所在的一个进程,传入CREATE_SUSPENDED使其挂起,利用ZwUnmapViewOfSection卸载原来所有区段以及RtlZeroMemory将内存区域置0,VirtualAllocEx配合WriteProcessMemory写入新的数据,利用SetThreadContext和ResumeThread修改程序的入口点,且恢复挂起进程运行

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值