160cm之003 爆破追码 by cqr2287
今天闲的无聊,继续写cm。1来锻炼技术,2来试试冰若大神的ollydbg.软件只有一个验证,跟002是看雪老师论坛里一个人做的,风格差不多,验证方法与计算方法倒是差远了。
打开软件,非让我看它启动窗口的动画。。等了5秒,终于开了
随便输入注册码。
然后就退出了。
static/image/hrline/2.gif
点了确定就退出了,那就说明这个软件有调用。这样的话f12暂停法就不能用了,看看字符串吧
载入od。
啊哈,玩了3个cm,终于遇到有壳的了。。{:301_992:}
管他呢,带壳破解。。
vb程序,但是为什么有ff25…………管他呢,下816c24断点。
小程序就3个。f9运行,输入假码注册。
00407931 816C24 04 53000>SUB DWORD PTR SS:, 0x53
在此处断下了。把其他俩断点删掉。
跟踪它。f8两次后,到了关键位置。仔细跟踪。
004081E3 FF15 18B14000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaHresu>; Msvbvm50.__vbaHresultCheckObj
004081E9 8B95 50FFFFFF MOV EDX, DWORD PTR SS:
004081EF 8B45 E4 MOV EAX, DWORD PTR SS:
004081F2 50 PUSH EAX ; 将用户名搞到寄存器
这三部是提取用户名的。继续跟踪。
004085C8 FF15 18B14000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaHresu>; Msvbvm50.__vbaHresultCheckObj
004085CE 8B45 E8 MOV EAX, DWORD PTR SS:
004085D1 50 PUSH EAX ; 假码出现
这三步是提取假码的。
我擦,输了。。继续跟踪看看。
004086D9 . /EB 60 JMP SHORT 0040873B
004086DB > |8B35 14B14000 MOV ESI, DWORD PTR DS:[<&MSVBVM50.__vbaS>;Msvbvm50.__vbaStrCat
004086E1 . |68 08704000 PUSH 00407008 ;UNICODE "You Get Wrong"
004086E6 . |68 DC6F4000 PUSH 00406FDC ; /String = "
"
004086EB . |FFD6 CALL ESI ; \__vbaStrCat
004086ED . |8BD0 MOV EDX, EAX
004086EF . |8D4D E8 LEA ECX, DWORD PTR SS:
004086F2 . |FF15 94B14000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrMo>;Msvbvm50.__vbaStrMove
004086F8 . |50 PUSH EAX
004086F9 . |68 28704000 PUSH 00407028 ;UNICODE "Try Again"
004086FE . |FFD6 CALL ESI ;Msvbvm50.__vbaStrCat
00408700 . |8945 CC MOV DWORD PTR SS:, EAX
我们看到,有一个跳转是跳到了失败这里的。跟踪它。
00408674 .8945 B4 MOV DWORD PTR SS:, EAX
00408677 .74 62 JE SHORT 004086DB
00408679 .8B35 14B14000 MOV ESI, DWORD PTR DS:[<&MSVBVM50.__vbaS>;Msvbvm50.__vbaStrCat
0040867F .68 C06F4000 PUSH 00406FC0 ;UNICODE "You Get It"
00408684 .68 DC6F4000 PUSH 00406FDC ; /String = "
"
00408689 .FFD6 CALL ESI ; \__vbaStrCat
0040868B .8BD0 MOV EDX, EAX
0040868D .8D4D E8 LEA ECX, DWORD PTR SS:
00408690 .FF15 94B14000 CALL DWORD PTR DS:[<&MSVBVM50.__vbaStrMo>;Msvbvm50.__vbaStrMove
是个je,把je给nop掉,完成爆破。
static/image/hrline/line7.png
追码开始。
刚才说到了爆破,在je处nop。那么正确注册码应该在上面。我为什么没有看到???
向上回溯看看。
其实,在刚才的跟踪中,我看到几个字符很可疑,它们三个组成起来很可能就是注册码。我只是没看到我的假码在寄存器与它们同出现而已。很可能它是分开比对的。
我们在假码出现的地方再次下段,删掉按钮事件断点,重新动态调试。
第一个可疑字符串 002BC2FC31 00 38 00 36 00 36 00 39 00 36 00 34 00 1.8.6.6.9.6.4.
其他两个在假码上面出现的。先不跟踪,试试这个。
1866964.
ok。
static/image/hrline/2.gif
这一次我测试了冰若的od{:301_971:}
说错了,这一次我搞了cm3.
我们发现,很可能软件是将注册码分段比对的。上面两个字符也许是这个真马的运算过程。
以后在假码附近出现的可疑字符串都小心点。
不错,支持楼主!{:301_993:} 求大声帮我破解一个辅助http://pan.baidu.com/s/1i4ZgX0p 楼主能不能把160CM打包发我一个,我一直都没找到- -。。。 看得我目瞪口呆 确实是大神 确实是大神,向你学习
页:
[1]