新手关于断点的疑问
今天我看了shenyun528做的关于CHM电子书反向编译器 V1.80 绿色版的破解,我试验了下,的确可以找出注册码,可是我有个疑问,下边是他的原文:
一个简单的重启软件验证注册码破解
【破解工具】OllyDbg,PEiD
【破解平台】Winxp
【保护方式】加壳,验证,注册码
【软件简介】CHM电子书反向编译器 V1.80 绿色版
启动软件显示未“未购买用户” 点注册输入 随便输入用户名ss 注册码78787878 显示注册完成 请重新启动软件 晕。。。。。。
退出了。。。
用PEiD查壳 ASPack 2.12 -> Alexey Solodovnikov 还有壳。。。 可怜我还是初学啊。。
用脱壳机算了(主要是手动我不会^_^)
脱壳后再查 Borland Delphi 6.0 - 7.0 哈哈
用OllyDbg载入。。。查找字符“购买用户”下断在004CFF03|.B8 EC614D00 MOV EAX,_UnPacke.004D61EC
F8单步。。。
004CFED7|.BA 01000080 MOV EDX,80000001
004CFEDC|.8BC3 MOV EAX,EBX
004CFEDE|.E8 094EF9FF CALL _UnPacke.00464CEC
004CFEE3|.B1 01 MOV CL,1
004CFEE5|.BA 3C004D00 MOV EDX,_UnPacke.004D003C ;software\chmdecompiler
004CFEEA|.8BC3 MOV EAX,EBX
004CFEEC|.E8 5F4EF9FF CALL _UnPacke.00464D50
004CFEF1|.8D4D FC LEA ECX,DWORD PTR SS:
004CFEF4|.BA 5C004D00 MOV EDX,_UnPacke.004D005C ;reguser
004CFEF9|.8BC3 MOV EAX,EBX
004CFEFB|.E8 3850F9FF CALL _UnPacke.00464F38
004CFF00|.8B55 FC MOV EDX,DWORD PTR SS:
004CFF03|.B8 EC614D00 MOV EAX,_UnPacke.004D61EC
004CFF08|.E8 3747F3FF CALL _UnPacke.00404644
004CFF0D|.8D4D F8 LEA ECX,DWORD PTR SS:
004CFF10|.BA 6C004D00 MOV EDX,_UnPacke.004D006C ;regno
004CFF15|.8BC3 MOV EAX,EBX
004CFF17|.E8 1C50F9FF CALL _UnPacke.00464F38
004CFF1C|.8B45 F8 MOV EAX,DWORD PTR SS:
004CFF1F|.50 PUSH EAX
004CFF20|.8D4D F4 LEA ECX,DWORD PTR SS:
004CFF23|.BA 7C004D00 MOV EDX,_UnPacke.004D007C ;chmdecompilerchina
004CFF28|.A1 EC614D00 MOV EAX,DWORD PTR DS:
004CFF2D|.E8 C205FDFF CALL _UnPacke.004A04F4
004CFF32|.8B55 F4 MOV EDX,DWORD PTR SS:
004CFF35|.58 POP EAX ;发现明码“B94008428BD849AE”
004CFF36|.E8 B14AF3FF CALL _UnPacke.004049EC
004CFF3B|.75 07 JNZ SHORT _UnPacke.004CFF44
004CFF3D|.C605 E8614D00>MOV BYTE PTR DS:,1
004CFF44|>8BC3 MOV EAX,EBX
004CFF46|.E8 1939F3FF CALL _UnPacke.00403864 ;假码真码比较
004CFF4B|.803D E8614D00>CMP BYTE PTR DS:,0
004CFF52|.75 27 JNZ SHORT _UnPacke.004CFF7B
004CFF54|.8D55 F0 LEA EDX,DWORD PTR SS:
004CFF57|.A1 E4614D00 MOV EAX,DWORD PTR DS:
004CFF5C|.E8 CB04F7FF CALL _UnPacke.0044042C
004CFF61|.8D45 F0 LEA EAX,DWORD PTR SS:
004CFF64|.BA 98004D00 MOV EDX,_UnPacke.004D0098 ; - 未购买用户
004CFF69|.E8 4249F3FF CALL _UnPacke.004048B0
004CFF6E|.8B55 F0 MOV EDX,DWORD PTR SS:
004CFF71|.A1 E4614D00 MOV EAX,DWORD PTR DS:
004CFF76|.E8 E104F7FF CALL _UnPacke.0044045C
004CFF7B|>B2 01 MOV DL,1
004CFF7D|.A1 D0FD4700 MOV EAX,DWORD PTR DS:
004CFF82|.E8 EDFEFAFF CALL _UnPacke.0047FE74
004CFF87|.8986 34030000 MOV DWORD PTR DS:,EAX
004CFF8D|.BA B0004D00 MOV EDX,_UnPacke.004D00B0 ;当前未打开文件
004CFF92|.8B86 08030000 MOV EAX,DWORD PTR DS:
004CFF98|.E8 1FCFF9FF CALL _UnPacke.0046CEBC
004CFF9D|.33C0 XOR EAX,EAX
004CFF9F|.5A POP EDX
004CFFA0|.59 POP ECX
004CFFA1|.59 POP ECX
004CFFA2|.64:8910 MOV DWORD PTR FS:,EDX
004CFFA5|.68 C7FF4C00 PUSH _UnPacke.004CFFC7
004CFFAA|>8D45 F0 LEA EAX,DWORD PTR SS:
004CFFAD|.E8 3E46F3FF CALL _UnPacke.004045F0
004CFFB2|.8D45 F4 LEA EAX,DWORD PTR SS:
004CFFB5|.BA 03000000 MOV EDX,3
004CFFBA|.E8 5546F3FF CALL _UnPacke.00404614
004CFFBF\.C3 RETN
用户名 ss
注册码 B94008428BD849AE
注册码保存在注册表内 搜用户名 ss 或者 B94008428BD849AE 就可找到
高手别笑。。。我是菜鸟。。。
有兴趣到http://www.91files.com/?D0M8G3ELPUKRCY13QUR1
下载,内有脱壳后的(省得你脱了。。。)
我的疑问是为什下断要下载004CFF03而未购买用户的地址是004CFF64 两者地址有什么区别和联系,为什非要下载03出,其他软件类似的破解也使这个样子吗?请高手帮忙。。。。。
004CFF61|.8D45 F0 LEA EAX,DWORD PTR SS:
004CFF64|.BA 98004D00 MOV EDX,_UnPacke.004D0098 ; - 未购买用户
004CFF69|.E8 4249F3FF CALL _UnPacke.004048B0
004CFF6E|.8B55 F0 MOV EDX,DWORD PTR SS: 哈哈,我也是这样的疑问 004CFF46|.E8 1939F3FF CALL _UnPacke.00403864------>>>>>关键比较
004CFF4B|.803D E8614D00>CMP BYTE PTR DS:,0
004CFF52|.75 27 JNZ SHORT _UnPacke.004CFF7B------>>>>>关键跳转
如果不追算法的话,在关键比较前都可以下断,然后F8,主要是追出真正的注册码与假码比较 我进来学习学习谢谢提供 具体下在哪你不知道你就把附近跳 可疑的地方都下断再跑一遍 就知道哪些是关键的了 你做了这一步没有?---查找字符“购买用户”
做了就知道为啥下断在03
页:
[1]