幽雅的心 发表于 2010-8-5 09:36:07

六种语言破解比较和常见思路

六种语言破解比较和常见思路

VB破解

1、VBExplorer查找按钮事件
2、有提示框则bp rtcMsgBox
3、通过bp __vbaStrCmp/__vbaStrComp/__vbaVarTstEq
bp __vbaStrCmp
bp __vbaStrComp
4、万能断点法(816C24法)
注册验证程序可以用这个断点下断,一般离程序访问注册表很近:
bp __vbaStrToAnsi
5.F12堆栈调用
总结:
VB程序破解的关键跳转,一般与其它语言的不同,没有JPM XXXXXXX
一般以 JE/JNE   XXXXXXXXX 跳转记录一般不会很远(虽然是短距离跳转,但是关键就在这里,可以设置大量的信息) 。如果发现False/True 可能是关键点
VB:
XXXXXXX JE/JNE XXXXX
设置信息
设置信息
Delphi BC++ 易语言   VC++ 汇编:
XXXXXXX JE/JNE XXXXX
设置信息
设置信息
XXXXXXX JMP XXXXX
设置信息
设置信息

VC++ 汇编(有的 一段,一段的):
XXXXXXX JE/JNE XXXXX
设置信息
设置信息
retn
push xx
设置信息
设置信息
retn
push xx
设置信息
设置信息
retn


易语言
易语言破解思路:
1. 信息框法 bp MessageBoxA(断对话框)
2.字符串法
查看易语言文本信息:
bp GetProcessHeap F9运行4次,取消断点 执行ALT+F9 用户代码 F8单步走
或者在区段为".data"/".ecode"下断,运行

3.窗口标题法   bp SetWindowTextA
4.F12堆栈调用

0040C0CB=易语言.0040C0CB (ASCII "shaonanshaonvluntan")

DELPHI破解:
1、DEDE、PE Explorer ResScope作为强有力的辅助工具找按妞事件
2、Point-H法
3、bp GetDlgItem/GetDlgItemTextA(断输入框)
4、bp MessageBoxA(W)(断对话框)---Ctrl+N
5、字符串法---插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的
可以通过查找FormCreate/FormShow----DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7. 窗口标题法   bp SetWindowTextA
8.F12堆栈调用
注册表:
bpx RegCreateKeyExA   对于Delphi程序程序来说,用这个断点比较合适
bp RegCreateKeyExA 对于加了壳的程序
注册码:Rc1-420+用户名(不能为整数,)+C00L

C+破解

C类
       Point-H法
       bp GetDlgItem(断按下按钮)
       bp MessageBoxA(断对话框)
       字符串法
       F12堆栈调用
       窗口标题法   bp SetWindowTextA
★★C+程序专用断点★★
bp lstrcmpA (KERNEL32.lstrcmpA) 比较用法
bp _mbscmp //比较
C类程序的经典断点:
bp GetWindowTextA(断按下按钮) //也是适用于其它语言
bp GetWindowTextLengthA(断按下按钮) //也是适用于其它语言
bp GetDlgItem(断按下按钮)         //也是适用于其它语言
bp GetDlgItemTextA
ds:=77C01881 (msvcrt._mbscmp)

BC++破解
1、DEDE、PE Explorer作为强有力的辅助工具找按妞事件
2、Point-H法
3、bp GetDlgItem/GetDlgItemTextA(断输入框)
4、bp MessageBoxA(W)(断对话框)---Ctrl+N
5、字符串法---插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的
可以通过查找FormCreate/FormShow----DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7.窗口标题法   bp SetWindowTextA
8.F12堆栈调用

bpx RegCreateKeyExA   对于Delphi程序程序来说,用这个断点比较合适
bp RegCreateKeyExA 对于加了壳的程序
MASM32 / TASM32破解
入口点 :
004011C7 6A 00             push 0
004011C9 E8 5E070000       call 0040192C
004011CE A3 70614000       mov dword ptr ds:,eax
004011D3 6A 00             push 0
004011D5 68 EE114000       push MASM32.004011EE
004011DA 6A 00             push 0
004011DC 68 C8000000       push 0C8
       Point-H法
       bp GetDlgItem(断按下按钮)
       bp MessageBoxA(断对话框)
       字符串法
       F12堆栈调用
       窗口标题法   bp SetWindowTextA

fsf359 发表于 2010-8-10 09:25:10

学习一下。。 版主很热心啊

wzgangwzgang 发表于 2015-4-29 13:39:43

学习学习,对照试试!!!

chenjava 发表于 2015-5-5 12:11:50

学习学习了,这个输入法有点二啊

uminsky 发表于 2015-6-27 18:52:43

好帖必须要收藏~

vizee 发表于 2015-7-13 11:25:44

学习了, 不知道有没有深入点的资料

不一样的烟火 发表于 2016-10-23 21:09:13

谢谢分享,学习了!!!

1595901624 发表于 2016-11-27 13:33:36

小白刚接触,谢谢楼主
页: [1]
查看完整版本: 六种语言破解比较和常见思路