vbwang 发表于 2008-4-29 16:57:40

新手关于断点的疑问

今天我看了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:

cdygr 发表于 2008-4-29 20:39:51

哈哈,我也是这样的疑问

tianxj 发表于 2008-4-29 20:49:15

004CFF46|.E8 1939F3FF   CALL _UnPacke.00403864------>>>>>关键比较
004CFF4B|.803D E8614D00>CMP BYTE PTR DS:,0
004CFF52|.75 27         JNZ SHORT _UnPacke.004CFF7B------>>>>>关键跳转
如果不追算法的话,在关键比较前都可以下断,然后F8,主要是追出真正的注册码与假码比较

lzglq2008 发表于 2008-4-29 23:52:59

我进来学习学习谢谢提供

frozenrain 发表于 2008-4-30 06:38:51

具体下在哪你不知道你就把附近跳 可疑的地方都下断再跑一遍 就知道哪些是关键的了

jiller 发表于 2008-4-30 09:55:58

你做了这一步没有?---查找字符“购买用户”

做了就知道为啥下断在03
页: [1]
查看完整版本: 新手关于断点的疑问