刚学破解不久,破解这个程序花了6个多小时
整理一下把它写出来,希望能对大家有些许帮助。
PS:我在整理的时候,想从头再回现一下我的思路,所以把UDD文件删了想从头再来一遍,结果居然回想不起来,我怎么找到断点的了,又花了两小时才想出来
工具:OD2.0 http://bbs.pediy.com/showthread.php?t=79867新年大礼包里面的
首先运行了一遍,不注册只能用两次,不过可以无限注册,注册码错误的话,将弹出一个注册号无效的框。
OD 载入,首先我尝试了一下搜索参考字串(在反汇编区右键search for,然后选择All referenced strings),先搜了一下“注册号无效”,没搜到。
重新载入,F9来注册界面,随手输了一个1234567890123,注册失败,搜这个注册号,也没搜到。
ctrl+n 搜过模块名称,先搜了GetDlgItem,没有,又搜GetWindowText,搜到了一个GetWindowTextA,右键find references,找到两个,全设上断点,F9运行,仍然把刚刚的1234567890123输进去,点注册,结果直接弹出注册码无效,没断下来,点确定后也没断下来。。。。
想想既然弹出窗口,应该有MessageBox吧,搜到,再右键Find References,搜到两处,全下断,再注册,居然也没断下来,点确定,OD也没反应,郁闷ING。
后来想想,我点确定的时候应该返回到一个地方,在这之前应该就是处理注册的过程。
ctrl+n 搜过模块名称,仍然搜MessageBox,搜到后在上面双击一下来到user32模块,停在一行,直接在这一行下断,ctrl + F2重新运行,一路F9来到注册界面,输注册号,点注册,这次断下来了,F8继续运行,直到弹出注册号无效(CALL MessageBoxExA),并停在CALL MessageBoxExA这一行,下面还有一句retn 10,应该就是返回了,看一下它返回到哪,说不定能得到一点有用的。OK,点确定,F8继续运行到retn,返回。如下图:
Address Hex dump Command Comments
77D507EA 8BFF MOV EDI,EDI ; ID_X user32.MessageBoxA(hOwner,Text,Caption,Type)下断在这里
77D507EC 55 PUSH EBP
77D507ED 8BEC MOV EBP,ESP
77D507EF 833D BC14D777 0 CMP DWORD PTR DS:[77D714BC],0
77D507F6 74 24 JE SHORT 77D5081C
77D507F8 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
77D507FE 6A 00 PUSH 0
77D50800 FF70 24 PUSH DWORD PTR DS:[EAX+24]
77D50803 68 241BD777 PUSH OFFSET user32.77D71B24
77D50808 FF15 C412D177 CALL DWORD PTR DS:[<&KERNEL32.Interlocke
77D5080E 85C0 TEST EAX,EAX
77D50810 75 0A JNE SHORT 77D5081C
77D50812 C705 201BD777 0 MOV DWORD PTR DS:[77D71B20],1
77D5081C 6A 00 PUSH 0
77D5081E FF75 14 PUSH DWORD PTR SS:[EBP+14]
77D50821 FF75 10 PUSH DWORD PTR SS:[EBP+10]
77D50824 FF75 0C PUSH DWORD PTR SS:[EBP+0C]
77D50827 FF75 08 PUSH DWORD PTR SS:[EBP+8]
77D5082A E8 2D000000 CALL MessageBoxExA
77D5082F 5D POP EBP
77D50830 C2 1000 RETN 10(这里就是返回了)
返回后来到这里:(如图)
在上图
0046EFA2 |. E8 BDFCFFFF CALL 0046EC64 ; [QQ聊天记录查看器_5_3.0046EC64
这一行下断,这一句应该就是调用判断函数了
重新运行,
接上图:
到这里就可以直接暴破或者写出注册机了。
很早就知道看雪了,以前来这里时,啥也看不懂,知道要打基础,等打完基础回来,发现需要激活码了
。。。。。
但愿此贴能给大家带来此许帮助,同时也能给我带个码
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件: