这是个CHM制作工具.求大牛写个破解教程.
这是FLY大哥的教程,写的太简单.
其实呢?是我太菜了.
原来的教程.是这样.(可是我看不懂
)
用PEiD0.94查壳:
UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
脱壳过程极简单,略。(这里我已经脱壳了,但显示Nothing found,也搞不懂是什么语言写的.)
在OD中“搜索”-“所有参考文本串”或用“Ultra String Reference”插件查找ASCII码,在结果的最后都可以看到“ProducuID”、“ProducuKey”、“UnRegistered”等敏感字符串,双击之,设断,跟踪一下,可知:
0048FE67 lea eax,dword ptr ss:[ebp-1C] 真注册码要保存的位置
0048FE6A mov edx,dword ptr ss:[ebp-18]
0048FE6D call un-CHMma.00403E48
0048FE72 dec dword ptr ss:[ebp-28]
0048FE75 cmp dword ptr ss:[ebp-28],3
0048FE79 jnz un-CHMma.0048FD36 循环,逐位地算出真注册码
0048FE7F lea eax,dword ptr ss:[ebp-20]
0048FE82 mov edx,dword ptr ss:[ebp-1C]
0048FE85 call un-CHMma.00403C58
..............省略
0048FE9D cmp dword ptr ss:[ebp-8],0 检查是否输入了注册码
0048FEA1 je un-CHMma.00490029
0048FEA7 mov eax,dword ptr ss:[ebp-8]
0048FEAA call un-CHMma.00403E40 查注册码的位数
0048FEAF mov ebx,eax
0048FEB1 mov eax,dword ptr ss:[ebp-1C]
0048FEB4 call un-CHMma.00403E40 查真注册码的位数
EBP-1C > 00DFE960 ASCII "k7iK-2Z37-6" 用这个码试一下,注册成功
0048FEB9 cmp ebx,eax 比较真假码的位数
0048FEBB jnz un-CHMma.00490494
还没真比较注册码,先比较位数,就已暴露目标了,呵呵。
注册信息保存:
HKEY_CURRENT_CONFIG\Software\Microsoft\windows\CurrentVersion
“ProducuID”、“ProducuKey”
未注册成功时两者值一样,成功以后,“ProducuID”为由真正的注册码调位变来的字符串。
[课程]Linux pwn 探索篇!