首页
社区
课程
招聘
Riijj系列之cm13分析
发表于: 2013-1-30 18:56 11364

Riijj系列之cm13分析

2013-1-30 18:56
11364

Riijj系列之cm13分析
工具:IDA6.1(主角)+WinDBG(主角)+OD(配角)
系统:WinXP sp3
CM :下载cm13 riijjcm13.zip

这一次调试会用到WinDBG内核态调试虚拟机,而在虚拟机内部用WinDBG和IDA调试,开三个调试器同时调强大吧,
Come On!
一、分析程序
看下程序流程

释放bin资源保存为wood文件,以调试模式创建wood进程,起初wood代码区全部为CC指令,
一执行就会出发异常由调试程序捕获异常后,在产生异常的地址,写入一条指令设置指令寄存器地址指向该写入指令。
然后清除上一条指令为CC,(让wood一致以异常形式执行然后接受所要执行的指令代码)wood的代码全部保存在主进程中。
主进程的结构很简单,拿IDA看一下就清楚了,而从临时目录下取出wood文件用IDA分析,只能看到数据部分及导入表函数,代码全部为CC填充,创建对话框获取对话框内容以及算法部分都在wood中。
首先,wood进程的代码部分由主进程填充,所以要获得完整wood代码并调试应该将上图中填充部分注释掉,否则始终得不到完整的Wood代码。
应该用OD工具将第二个WriteProcessMemory注释掉如下图

Nop后保存为cm13_1.exe
调试
关键是如何调试wood进程呢?
在用户态调试不能从打开方式调试这样的话,调试器调试的是主进程,创建wood后无法切换到wood进程(目前为止,本人不知道如何跳入,知道的兄弟可以告诉我,谢谢~),而先运行主程序以附加方式调试wood进程的话,因为wood是以调试模式创建的
DebugPort端口已经被占用了,无法附加!
试想是否可以运行主程序,待写入wood完成后,暂停主程序并清除wood进程的DebugPort端口,这时再用WinDBG附加调试呢
这样的话清除DebugPort可以在WinDBG以内核模式远程调试虚拟机进行。在虚拟机内部用WinDBG附加wood(有不清楚地方可以参考前面几篇文章)
说着比较复杂,不仅用WinDBG调试虚拟机,而在虚拟机内部又使用IDA和WinDBG调,相当于开了三个调试器,
能解决问题就OK了,所以行动吧少年~
1.双机调试模式运行WinDBG,开启虚拟机启动菜单时选择调试运行,调试器断下后F5运行稍等片刻虚拟机进入桌面
2.在虚拟机中IDA载入修改过的cm13_1.exe,选择Local Win32 debugger调试器后运行后,
一定要在输入
Name:AJISky
Serial:123456789
点击注册按钮运行一次,这样才能保证,写wood代码完全,否则算法部分有可能没有写入,事实证明就是这样
3.切换到WinDBG暂停系统,
1)输入命令!Process 0 0查看系统运行的进程信息

kd> !process 0 0 
**** NT ACTIVE PROCESS DUMP ****
....
PROCESS 81fc8da0  SessionId: 0  Cid: 07d0    Peb: 7ffde000  ParentCid: 0114
    DirBase: 08d802c0  ObjectTable: e1ae7648  HandleCount:  57.
    Image: crackme13_1.exe

PROCESS 81bf4b28  SessionId: 0  Cid: 07dc    Peb: 7ffdd000  ParentCid: 07d0
  DirBase: 08d80300  ObjectTable: e224e7d0  HandleCount:  35.
  kd> .process 81bf4b28
  Implicit process is now 81bf4b28
  WARNING: .cache forcedecodeuser is not enabled
 
kd> dt _eprocess 81bf4b28
ntdll!_EPROCESS
   +0x000 Pcb              : _KPROCESS
   +0x06c ProcessLock      : _EX_PUSH_LOCK
   +0x070 CreateTime       : _LARGE_INTEGER 0x1cdfeb6`c2f16d7c
   +0x078 ExitTime         : _LARGE_INTEGER 0x0
   +0x080 RundownProtect   : _EX_RUNDOWN_REF
   +0x084 UniqueProcessId  : 0x000007dc Void
   +0x088 ActiveProcessLinks : _LIST_ENTRY [ 0x8055b258 - 0x81fc8e28 ]
   +0x090 QuotaUsage       : [3] 0x7d0
   +0x09c QuotaPeak        : [3] 0x848
   +0x0a8 CommitCharge     : 0x110
   +0x0ac PeakVirtualSize  : 0x1325000
   +0x0b0 VirtualSize      : 0x1325000
   +0x0b4 SessionProcessLinks : _LIST_ENTRY [ 0xf89b7014 - 0x81fc8e54 ]
   +0x0bc DebugPort        : 0x8200a318 Void
   +0x0c0 ExceptionPort    : 0xe145ee10 Void
   ...........
kd> dd 81bf4b28+0xbc
81bf4be4  8200a318 e145ee10 e224e7d0 e131f99d
81bf4bf4  00000001 b1811c9c 00000000 00040001
81bf4c04  00000000 81bf4c08 81bf4c08 00000000
81bf4c14  0001bfc8 00000001 b1811cf4 00000000
81bf4c24  00040001 00000000 81bf4c2c 81bf4c2c
81bf4c34  00000000 00000000 00000000 00000000
81bf4c44  81aea6f0 81ffd9f8 00000000 000000ef
81bf4c54  00000000 e1ae3280 00000000 e2262220
kd> dd 81bf4b28+0xbc
81bf4be4  00000000 e145ee10 e224e7d0 e131f99d
81bf4bf4  00000001 b1811c9c 00000000 00040001
81bf4c04  00000000 81bf4c08 81bf4c08 00000000
81bf4c14  0001bfc8 00000001 b1811cf4 00000000
81bf4c24  00040001 00000000 81bf4c2c 81bf4c2c
81bf4c34  00000000 00000000 00000000 00000000
81bf4c44  81aea6f0 81ffd9f8 00000000 000000ef
81bf4c54  00000000 e1ae3280 00000000 e2262220

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (10)
雪    币: 297
活跃值: (120)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
我的个天,楼主,你的电脑太强大了
2013-1-30 20:27
0
雪    币: 42
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
收藏鸟
留着慢慢品味
现在还接受不了这么深奥的知识。。。
2013-1-30 20:39
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
4
还真是一天一篇也,厉害
2013-1-30 21:59
0
雪    币: 97697
活跃值: (200829)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
Thanks for share.
2013-1-31 10:24
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rev
6
楼主的OD可以共享一下,嘿嘿
2013-1-31 11:40
0
雪    币: 248
活跃值: (123)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
强大得一塌糊涂
2013-1-31 12:44
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我是来膜拜的,膜拜
2013-1-31 19:09
0
雪    币: 194
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rwx
9
拜谢 收藏,楼主太强大了。
2013-2-1 13:38
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
达到楼主这高度是不是就可以进公司了。。快毕业了 不是计算机专业的 不知道调试逆向这方面就业情况怎么样。。
2013-3-25 23:41
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
弱弱的问句 单独用OD是否可以破解?我用OD调试发现执行到waitfoDebugEvent那里就会超级卡。难道非得用WinDbg吗?
2013-6-25 10:57
0
游客
登录 | 注册 方可回帖
返回
//