这一周上了7天课,真累。上次测试了冰若大神的od,还行,可惜寄存器不能复制值……
今天分析004.发现文件夹内有个txt。打开看看
004是ajj大牛写的。TXT内容如下
前两天我和[CCG]的大哥Sun Bird兄闲聊时引出一个话题,
我要想想办法难为一下Sun Bird兄。因此就用了两个半天的时间,作了一个小东东。
这个CKme与一般的软件注册过程不一样,它没有"确定"键,
当然CK这样的软件其实一点也不麻烦,没遇到过的朋友可要动动脑子了。 8)
另外这个CKme还作了一点别的手脚,不多说了,自己看着办吧。
这个软件是用Delphi编的,由于我刚学了一星期的Delphi,
有很多想法在这个小程序里没有实现,因此这个CKme应该算是比较简单的了。
如果你成功的注册了,请给我来封信好吗?谢谢!!!
还有你千万不要告诉我你只用了2分钟就搞定了,如果是这样我就。。8~~~( 爆破是2分钟搞定了,但是追码用了我15分钟!!
我擦,连按钮都没有。Delphi程序我不是很熟悉。管他呢,载入od再说。
爆破过程
运行起来,试试字符串行不行。
找到了这
[Asm] 纯文本查看 复制代码 004580A1 |. A1 20B84500 mov eax,dword ptr ds:[0x45B820]
004580A6 |. 83C0 70 add eax,0x70
004580A9 |. BA 14814500 mov edx,CKme.00458114 ; 恭喜恭喜!注册成功
004580AE |. E8 9DB8FAFF call CKme.00403950
004580B3 |> 33C0 xor eax,eax ; rpcrt4.75C51EEC
不知道是不是ajj大牛蒙我们的。管他呢,跟踪跳转
[Asm] 纯文本查看 复制代码 00458031 |. 81BE 0C030000>cmp dword ptr ds:[esi+0x30C],0x85
0045803B |. 75 76 jnz short CKme.004580B3
这个jnz不能跳。为了确定是不是蒙我的,下个断运行。
我擦,真断下来了。。
nop掉jnz
呃呃,这照片…………
反正成功了,用时2分钟。
下面追码
上面说到,jnz是关键跳。而jnz上面有个循环。
在循环尾部下个断。
[Asm] 纯文本查看 复制代码 00457FDC |> /8D55 F4 /lea edx,[local.3]
00457FDF |. |8B86 D4020000 |mov eax,dword ptr ds:[esi+0x2D4]
00457FE5 |. |E8 5EB3FCFF |call CKme.00423348
00457FEA |. |8B45 F4 |mov eax,[local.3]
00457FED |. |E8 8ABBFAFF |call CKme.00403B7C
00457FF2 |. |83C0 1E |add eax,0x1E
00457FF5 |. |8D55 F8 |lea edx,[local.2]
00457FF8 |. |E8 07FBFAFF |call CKme.00407B04
00457FFD |. |FF75 F8 |push [local.2] ; kernel32.7789EE1C
00458000 |. |8D55 F0 |lea edx,[local.4]
00458003 |. |8B86 D4020000 |mov eax,dword ptr ds:[esi+0x2D4]
00458009 |. |E8 3AB3FCFF |call CKme.00423348
0045800E |. |FF75 F0 |push [local.4]
00458011 |. |8D55 EC |lea edx,[local.5]
00458014 |. |8BC3 |mov eax,ebx
00458016 |. |E8 E9FAFAFF |call CKme.00407B04
0045801B |. |FF75 EC |push [local.5]
0045801E |. |8D45 FC |lea eax,[local.1]
00458021 |. |BA 03000000 |mov edx,0x3
00458026 |. |E8 11BCFAFF |call CKme.00403C3C
0045802B |. |43 |inc ebx
0045802C |. |83FB 13 |cmp ebx,0x13
0045802F |.^\75 AB \jnz short CKme.00457FDC
运行,跟踪。
断尾是个向上的跳转。在下面f4
[Asm] 纯文本查看 复制代码 0012FC4C 02FA07BC ASCII "37cqr228718"
在左边加了37,右边加了18.也就是说循环了18次。
这个就是真马?
经过测试,不是。
那哪里是真马呢???
在上面跟踪,发现两个可疑字符串。
[Asm] 纯文本查看 复制代码 00457BD3 . 8D83 10030000 lea eax,dword ptr ds:[ebx+0x310]
00457BD9 . BA 187C4500 mov edx,CKme.00457C18 ; 黑头Sun Bird
00457BDE . E8 6DBDFAFF call CKme.00403950
00457BE3 . 8D83 14030000 lea eax,dword ptr ds:[ebx+0x314]
00457BE9 . BA 307C4500 mov edx,CKme.00457C30 ; dseloffc-012-OK
00457BEE . E8 5DBDFAFF call CKme.00403950
莫非是他先判断了,用两个字符串代替结果??
这样的话,真马应该是黑头Sun Birddseloffc-012-OKcqr2287
试一试
恭喜我,失败了
堆栈这次出的11.莫非在两个字符串过程中,又加了这个11???
Sun Bird11dseloffc-012-OKcqr2287
试试
ok
追码完毕。
这个cm告诉我们,真马很可能是拼接而成的。
我们不可能一下子追到真马,需要将字符串合起来。
相信大家会有收货
而这,就是分析算法的原因
谢谢大家!!!!
|