nicky_926 发表于 2009-1-2 02:41

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

VB MASM32 VC   BCB   易语言   Delphi


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

open5858 发表于 2009-1-2 04:36

感謝樓主分享破解思路
受益學習了:)

qq513701092 发表于 2009-1-2 10:02

这。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

这个不是天草提高班里面的教程文本嘛??????

daihu37 发表于 2009-1-2 19:34

这个要感谢的,好帖子啊

老万 发表于 2009-3-4 20:17

好思路,收藏了。。。。。。。。

aamyd 发表于 2009-3-6 00:31

不错支持了

ps122 发表于 2009-3-6 18:28

谢谢分享
学习了

eiffel 发表于 2009-3-6 21:16

是好像在哪里有看过哟,好老的资料

hkady 发表于 2009-3-8 12:29

好样的 支持哈

dety 发表于 2009-3-8 13:11

学习了 谢谢共享
页: [1] 2
查看完整版本: 六种语言破解比较和常见思路