乐易论坛-乐易网易语言培训教程火山PC视窗中文编程交流论坛

 找回密码
 立即注册

手机号登录

用手机号号登陆

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

办理VIP,定制软件,报名培训联系QQ[重磅]2024年实地培训高清培训目录火山PC版乐易模块使用教程
请牢记揰掵佲的QQ号1615457736 1615457734 其他都是骗子有了火山,易语言是否还有必要学习吗?易语言0基础入门课程
火山PC视窗0基础入门课程易语言外挂0基础入门课程火山PC视窗火山HOOK入门课程
易语言误报处理课程QQ空间POST课程2022年火山PC易语言POST系列课程
Android逆向Jeb动态调试0基础课程QQ邮箱网页POST课程WeChat个微Hook实战课程
百日Js加密分析实战课程(无密下载)QQ群POST课程h5游戏WebSocket逆向视频
JavaScript加密特训课程易语言汇编快速入门课程破解实战系列课程
[2024年]火山PC0基础x64位游戏内存辅助开发教程手游模拟器脚本0基础课程易语言加密防破解0基础入门课程
广告位招租联系QQ1615457736  
查看: 10775|回复: 8

[图文教程] OD常用断点大全~

[复制链接]

[图文教程] OD常用断点大全~

[复制链接]
已绑定手机
已实名认证
揰掵佲
等级头衔

等級:乐易运营组

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分成就
易币
贡献
主题
精华
金钱
积分
34338
注册时间
2014-8-2
最后登录
1970-1-1

勋章墙

2014-12-9 09:45:39 | 显示全部楼层 |阅读模式

据统计90%查看本帖的人,都已经注册本站了哦

您需要 登录 才可以下载或查看,没有账号?立即注册

×
拦截窗口:
bp CreateWindow 创建窗口0 I3 ?; @6 J9 o% T
bp CreateWindowEx(A) 创建窗口, U& O& U3 z+ Q& K9 R) ?- m' i
bp ShowWindow 显示窗口% [' c8 [9 T1 W9 B& @
bp UpdateWindow 更新窗口
bp GetWindowText(A) 获取窗口文本4 B2 h( |0 j/ l! n; f
拦截消息框:* f7 ]$ \+ d( Z( f1 ~
bp MessageBox(A) 创建消息框
bp MessageBoxExA 创建消息框
bp MessageBoxIndirect(A) 创建定制消息框
, Z4 M+ v0 a: ~: ]6 M3 I6 E
拦截警告声:" k- A* l  C/ u3 r% G9 q" H# l
bp MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)
拦截对话框:9 g9 ]5 l# W" n9 ?4 ~+ w
bp DialogBox 创建模态对话框
bp DialogBoxParam(A) 创建模态对话框
bp DialogBoxIndirect 创建模态对话框- |/ y! r, |4 e5 V: t9 c- d3 g
bp DialogBoxIndirectParam(A) 创建模态对话框1 B# _; Z9 o: _2 g' }( H
bp CreateDialog 创建非模态对话框/ o' V4 v1 C+ Q+ Y
bp CreateDialogParam(A) 创建非模态对话框( @$ y9 m0 \& `# b( L
bp CreateDialogIndirect 创建非模态对话框
bp CreateDialogIndirectParam(A) 创建非模态对话框8 Y$ d5 u& [, y3 t2 T7 q
bp GetDlgItemText(A) 获取对话框文本
bp GetDlgItemInt 获取对话框整数值) [2 A4 o0 i9 y# t) T1 z
拦截剪贴板:
bp GetClipboardData 获取剪贴板数据
拦截注册表:
bp RegOpenKey(A) 打开子健
bp RegOpenKeyEx 打开子健
bp RegQueryValue(A) 查找子健
bp RegQueryValueEx 查找子健
bp RegSetValue(A) 设置子健. m+ y8 y  v* I, P7 ~+ t6 I
bp RegSetValueEx(A) 设置子健' Q6 R7 G, g/ R1 V
功能限制拦截断点:; m# Z7 ~( M" O* M2 F6 a4 y4 o5 Z
bp EnableMenuItem 禁止或允许菜单项
bp EnableWindow 禁止或允许窗口1 q2 e) ^9 q! B- A
拦截时间:4 O- m7 R! [7 u% z8 U* V: W6 x
bp GetLocalTime 获取本地时间
bp GetSystemTime 获取系统时间
bp GetFileTime 获取文件时间' G: D% G; o3 P4 y, i4 r
bp GetTickCount 获得自系统成功启动以来所经历的毫秒数& R8 a: G# O# H" w$ B
bp GetCurrentTime 获取当前时间(16位)9 q; v: {6 U; I  l6 B
bp SetTimer 创建定时器7 Y+ v+ k# ^. o
bp TimerProc 定时器超时回调函数
拦截文件:, T8 I6 U8 T+ A: R. [- ~+ m
bp CreateFileA 创建或打开文件 (32位)  e7 Q  h$ u3 i  i4 R5 R
bp OpenFile 打开文件        (32位)
bp ReadFile 读文件          (32位)5 L4 a4 g6 B$ Q# l
bp WriteFile 写文件          (32位)
bp GetPrivateProfileStringA (ini文件)
拦截驱动器:
bp GetDriveTypeA 获取磁盘驱动器类型
bp GetLogicalDrives 获取逻辑驱动器符号* J% y0 y% Q' `  {5 N( q% I1 ]
bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器的根驱动器路径
★★VB程序专用断点★★
bp __vbaStrCmp 比较字符串是否相等
bp __vbaStrComp 比较字符串是否相等
bp __vbaVarTstNe 比较变量是否不相等2 z1 V+ S+ N# V0 |8 N/ r
bp __vbaVarTstEq 比较变量是否相等) c/ W# L6 ~4 z1 D. Y' J
bp __vbaStrCopy 复制字符串
bp __vbaStrMove 移动字符串
bp MultiByteToWideChar ANSI字符串转换成Unicode字符串* d' a+ v0 G( g! K# G
bp WideCharToMultiByte Unicode字符串转换成ANSI字符串
解自校验% w6 M$ `' G& T) |4 h6 Z' K; t
bpx CreateFileA( }" o6 T! D  b/ @& b
bpx GetFileSize
bpx SetFilePointer2 \6 G0 p1 h! |7 [  Y
bpx ExitProcess6 v) i- S* ?4 Y* z4 K
F12堆栈调用
破解思路
C类# F8 E; z8 `3 C) M
Point-H法
bp GetDlgItem(断输入框)
bp MessageBoxA(断对话框)
字符串法
F12堆栈调用$ ?) o! W8 U9 |  e
B、D类# o2 c# t' P' e' ~# A$ d  o0 X
DEDE、PE Explorer作为强有力的辅助工具4 ~. D! c% e% ^" O/ F8 a
关键还是找按妞事件
Point-H法+ B/ e3 U+ D; E  A4 C
bp GetDlgItem(断输入框)
bp MessageBoxA(断对话框)% O+ i5 t$ N) N) S; J! C
字符串法
F12堆栈调用
V类
VBExplorer、GetVBRes、SmatCheck作为强有力的辅助工具7 ?/ l: N5 s- q* S
关键还是找按妞事件
bp rtcMsgBox(断对话框)
*********************************
如果是重启验证就使用最开始的那些断点
C类语言破解
1、bp MessageBoxA(W)(断对话框)—Ctrl+N
2、Point-H法$ ?) M2 U2 _0 {6 M
3、bp GetDlgItem/GetWindowTextA(W)/GetWindowTextLengthA(W) (断输入框)
4、字符串法—插件/搜索所有参考文本
Delphi/BC++语言破解
1、DEDE结合PE Explorer找按妞事件
2、Point-H法- U/ K8 n: R8 x) Q
3、bp GetDlgItem/GetWindowTextA(W)/GetWindowTextLengthA(W) (断输入框)
4、bp MessageBoxA(W)(断对话框)—Ctrl+N
5、字符串法—插件/搜索所有参考文本
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样,可以通过DEDE查找FormCreate/FormShow,找到关键标志位4 f  F& c6 ~0 O* v# @
VB语言破解
1、VBExplorer查找按钮事件
2、有提示框则   bp rtcMsgBox(断对话框)$ J4 e$ M1 H; O% n) p8 y1 S
3、通过bp __vbaStrCmp/__vbaStrComp/__vbaVarTstEq
4、万能断点法(816C24法)5 q1 X" h7 ^: f2 U; U# `# a: f# H
5、字符串法—插件/搜索所有参考文本" o$ ^& R: _8 N5 s6 I- @
易语言破解0 Q) n% G+ V( x+ @' y
1、借助E-Code Explorer查找按钮事件4 K, t' ?) y! S2 e' ~
2、下消息断点,查看堆栈再返回
3、eCode法–断按钮事件+ x) \6 N" f: m$ v3 c) v& ^: Q
4、字符串法—插件/搜索所有参考文本
按钮事件固定模式:
0040EC78      837D F4 00       cmp dword ptr ss:[ebp-C],0          ;关键判断
0040EC7C      0F84 3B000000    je dcse.0040ECBD                     ;关键跳
0040EC82      68 04000080      push 80000004: x( h3 O2 `; F) Z7 c/ t8 Q
0040EC87      6A 00            push 0
0040EC89      68 EC904000      push dcse.004090EC3 k$ ?* e, ]$ s$ F1 b
0040EC8E      68 01030080      push 80000301
0040EC93      6A 00            push 0
00 40EC95      68 00000000      push 0
0040EC9A      68 04000080      push 80000004
0040EC9F      6A 00            push 0+ m. F- q8 b# }# }
0040ECA1      68 F1904000      push dcse.004090F1
0040ECA6      68 03000000      push 35 ?; F1 K0 r7 R6 @  V
0040ECAB      BB 00030000      mov ebx,300
0040ECB0      E8 92000000      call dcse.0040ED47
0040ECB5      83C4 28          add esp,28
0040ECB8      E9 36000000      jmp dcse.0040E*F3
0040ECBD      68 04000080      push 80000004' G% s3 P# G$ O" M
0040ECC2      6A 00            push 0
0040ECC4      68 CC904000      push dcse.004090CC1 g+ P. [6 F* [+ v( o$ j  z% f
0040ECC9      68 01030080      push 80000301
0040ECCE      6A 00            push 0  t3 S% f( }8 m# D3 c- N
0040ECD0      68 00000000      push 0, r" m' U" U) i& k
0040ECD5      68 04000080      push 800000048 \; @4 U) @8 a
0040ECDA      6A 00            push 02 q1 B9 R; C3 a7 A( W
0040ECDC      68 02914000      push dcse.00409102" Z: q& |0 H5 |5 R7 C+ N1 O
0040ECE1      68 03000000      push 3
0040ECE6      BB 00030000      mov ebx,300
0040ECEB      E8 57000000      call dcse.0040ED471 X" j% e" I/ B
0040E*F0      83C4 28          add esp,28. G1 I& }/ M+ w6 ]; C% j
0040E*F3      8BE5             mov esp,ebp
0040E*F5      5D               pop ebp- A- Z' c3 Z) l1 t5 S" e  s" o
0040E*F6      C3               retn* K  y0 N" ]4 X  p0 o# W# J4 {
******************************************************************************************************************************************
按钮事件1 ?: t5 o4 I2 P3 `0 E
1、有注册错误/正确提示
bp MessageBoxA
bp rtcMsgBox5 J' o' ]2 V* i# N  \3 S  |! Z
如果事先找不到按钮事件,可以通过下消息断点,返回后回溯即可找到按钮事件起始位置, S# D: r) R; q3 i( @4 D
2、无任何提示# ^) D; `: L0 |6 M9 y4 q$ c9 S
bp GetDlgItem
可以通过bp GetDlgItem获取按钮事件代码- u0 P$ g1 N: p" G* o
3、未注册一启动或者关闭就跳出个注册框或者提示框; L2 n+ B) v' A9 B( F0 A1 W
bp RegOpenKey(A)
bp CreateFileA0 O8 a( c0 Q* X/ L6 {: p' f( |( k- z5 [
bp GetPrivateProfileStringA
文件: reg/ini/dll/其他
至于保存到什么文件,可以使用以下方法
1、查找字符串,看是否有可疑文件名或者注册表键名/ Q3 s; }9 }: S1 {' D0 B6 }
2、猜。。。下断点观察
3、按钮事件跟踪! c9 ?' w/ m# q
4、未注册一启动或者关闭就打开网页链接( z' `' b3 B4 @! p" e" i, ~3 t% s
bp ShellExecuteA
类似的组合
Cmp/test/其他判断0 ]  _) E; v; Y1 c
Je/jne/jne/jz XXXXXXXX
软件启动—>判断是否注册—>是否Open% v3 @. N- D7 F, ?5 M. E3 Y
断下后回溯代码即可找到关键点,常用的方法,转存跟踪法; X1 `* o# y( C; k2 _
5、未注册就功能使用限制
判断是否注册—>某种功能是否让你使用,如果不能够用,一定会有提示的,或是错误提示或是弹出注册框等,那么从提示入手即可找到解除限制的关键
不完美破解:解除功能限制
6、未注册就日期限制% H1 S7 M1 D; w9 w( t
bp GetLocalTime 获取本地时间
bp GetSystemTime 获取系统时间
bp GetFileTime 获取文件时间( V5 k/ {( U- [" U' i$ R+ n
一般下这几个断点比较难分析关键
捷径:查找字符串–找可疑文件–一般以DLL多见" r/ K$ E4 ^# ?3 E1 m! F. d1 }
只要不让它读取到这个DLL即可解除限制
7、Demo(演示试用版)–功能残缺
这个和上面的功能限制不一样
功能限制是软件本身就有这个功能,对程序而言,相对应的功能代码也存在# a3 @' m. Z. y7 p$ {- a
Demo即是没这个功能,空架子一个而已
一句话:破解也无用!
8、网络验证3 x# u- ?9 X) |5 x  K" _
无法登陆有错误提示者:下消息断点回溯代码,找按钮事件,从头来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了
无法登陆自动退出者:下bp ExitProcess断下(一般可以断下)回溯代码,找按钮事件,从来来过,从按钮事件开始跟踪,找网络验证CALL(所需要登陆的地址在这个CALL里面),接下来就是分析返回值或者改登陆地址为本地(127.0.0.1),再后面就需要改某些跳转了4 t3 w9 d8 W0 s0 R+ \( c
9、狗加密
一般狗加密软件,一启动就会检测所需要的狗文件,若没有狗文件,提示错误+ B% j% o* ^( \% |3 t: i9 ]
这里我们有两个入手点. E$ e7 p* p9 o" q
1、“一启动就会检测所需要的狗文件”,下bp CreateFileA等断点,断下后,回溯
2、“若没有狗文件,提示错误”,下bp MessageBoxA,断下后,回溯
总结:& s9 c+ n) O  K6 W! v
从上面的介绍说明可以看出,有这么一个共同点—按钮事件,可以这么说,按钮事件是我们的思路之门5 |$ \5 i; |5 D3 X( K3 Q
按钮事件可以这样得来:% B3 s9 C! K3 R& _
1、通过下相应断点,回溯代码' K  ^/ T# e% C! w* r
2、通过辅助工具快捷的得到(VBExplorer、DEDE)
******************************************************************************************************************************************' w* e# i# L0 _( f- @+ y. |
重启验证3 t0 w" C2 ]2 N
80%-90%的软件基本都是重启验证类型. @, X" l8 J9 L  C$ {+ [
1、注册表类型
Bpx RegOpenKeyA(W)( K& R& Y' X  f. b4 K8 X; G& |, Z
Bpx RegOpenKeyExA(W)3 R( W/ k+ H9 E, N8 w
2、ini文件类型(*.reg/*.ini)
Bpx GetPrivateProfileStringA
3、其他文件类型(*.dat/*.lic…); s0 q( [+ h; }0 W, P4 X
Bpx CreateFileA(W)
Bpx ReadFile; t5 _& |* K/ B
4、DLL文件操作类型
如果没有什么有效的拦截函数,不妨试一下Bpx CreateFileA(W).余下的就是通过你的经验去判断了(例如:35课)
注意:建议使用Bpx断点,这样,比较快捷、准确。尚若Bpx失效,再尝试bp% ^% A  T4 K3 b' m( f/ |9 y% ?8 k
方便断点设置的有以下3个断点插件,APIBreak中国版(不带Point-H),APIBreak英文版(带Point-H)、+BP-Olly8 _7 Y- H+ F  o7 c- b# F1 c3 W
******************************************************************************************************************************************& I5 j) r" g% G" n( v; c
去nag框的方法6 f7 n4 @4 ~; n' t
1、若是Delphi&BCB程序,可以通过FormCreate法查找到FormCreate,再单步跟踪,找到窗口的调用CALL,一般它的具体形式是call dword ptr ds:[edx+E8]
2、OD载入程序后,单步跟踪,找到窗口的调用CALL
8 Z/ i! U( e5 h1 T6 X/ o
******************************************************************************************************************************************+ C& `3 f$ T$ @' k5 h2 ?$ w2 V# X
两种经典方法
1、Point-H法) M+ D( T1 E8 W
此法类似下断点bp GetWindowText(A/W),但是,在某些Point-H断不下来的情况下,bp GetWindowText(A/W)却可以断下来。Point-H能够断下来的,bp GetWindowTextA基本上都可以顺利断下3 B6 |- x, I& |: x  G! @
2、转存跟踪法) [0 w3 y2 }% @' Z# ]7 h: i, M$ z
到底是byte/word/Dword断点,一般情况下是byte,其他特殊情况大家临场判断
******************************************************************************************************************************************3 j% J1 o6 I. h
灰色按钮3 T- ?3 P, U$ H( t+ q8 _4 Q
有两种情况:通过代码和控件属性  [9 C! q7 h+ b7 O' G8 ^
VB语言:
代码:ctrl+b查找 816C24,在JMP下断,然后F2运行程序,把 push ebp 改为 retn,或者把这些代码全NOP掉3 }- j7 X3 ]5 S4 ?9 Z$ \% A7 ^* ?8 q! X
控件属性:VBExplorer 辅助工具改属性+ ~0 y+ A# c) H% l: x
Delphi/BC++语言:
代码:通过DEDE找FormCreate,记下地址,改 retn
控件属性:相关辅助工具改属性
易语言:
代码:bp EnableWindow,断下后返回,把 push ebp 改为 retn
控件属性:用十六进制工具查找 BOB4C5A5 ,把它后面的 07 改 051 y$ U$ d* g& D* C( V
破解时常用断点:6 R: J0 [- w: l! ]
VB MASM32 VC BCB 易语言 Delphi8 [# T4 z/ f# j0 @
VB破解
1、VBExplorer查找按钮事件. ~! O6 s# b9 b8 M. c
2、有提示框则bp rtcMsgBox
3、通过bp __vbaStrCmp/__vbaStrComp/__vbaVarTstEq% a9 g7 K5 E2 |; J
bp __vbaStrCmp
bp __vbaStrComp
4、万能断点法(816C24法)& P3 r5 T  S, ]$ Y7 M: f
注册验证程序可以用这个断点下断,一般离程序访问注册表很近:
bp __vbaStrToAnsi
5.F12堆栈调用; z/ g# U1 i3 u- M
总结:
VB程序破解的关键跳转,一般与其它语言的不同,没有JPM XXXXXXX7 C+ X9 w  @2 g4 L
一般以 JE/JNE XXXXXXXXX 跳转记录一般不会很远(虽然是短距离跳转,但是关键就在这里,可以设置大量的信息) 。如果发现False/True 可能是关键点
VB:8 ^3 Q6 t" ^  [: c1 V$ M
XXXXXXX JE/JNE XXXXX4 r- i  v- t7 ]; K6 D6 `9 [: W+ L
3 t" S; H( P  w8 I8 T) P8 k
设置信息( m( R+ C/ S( Y) t
Delphi BC++ 易语言 VC++ 汇编:
XXXXXXX JE/JNE XXXXX

设置信息
XXXXXXX JMP XXXXX

设置信息
VC++ 汇编(有的 一段,一段的):
XXXXXXX JE/JNE XXXXX) Y6 a# m2 g3 T3 o3 P9 Q
+ g2 N, c" I4 ?/ i! a5 ~9 W' ]
设置信息
retn
push xx% p( o0 y2 K1 c% K% ^
' t* G& D% d. x( O) J) e
设置信息
retn5 L  [& G2 Z3 c" x7 c! F. s
push xx& F5 ?, d- I) V+ X* E, W
4 j; r" Y& ?; L2 H. ]
设置信息9 f6 m5 b; k4 x, C
retn
易语言
易语言破解思路:# ]" ^7 J3 |. d9 |
1. 信息框法 bp MessageBoxA(断对话框)! x0 L( Y8 o- R- o2 a
2.字符串法/ @- X; d4 q9 y; q7 }
查看易语言文本信息:
bp GetProcessHeap F9运行4次,取消断点 执行ALT+F9 用户代码 F8单步走; G& Q2 M, g/ D' a' }3 V5 g) U6 o+ s9 h
或者在区段为”.data”/”.ecode”下断,运行: a: }# u0 a. e6 M/ J; h
3.窗口标题法 bp SetWindowTextA
4.F12堆栈调用
0040C0CB=易语言.0040C0CB (ASCII “shaonanshaonvluntan”)% `& D5 g; X9 N( H4 i5 ]
DELPHI破解:* s' x: u* e+ j. e1 C
1、DEDE、PE Explorer ResScope作为强有力的辅助工具找按妞事件
2、Point-H法) k# V) p1 f7 F% O/ m+ r
3、bp GetDlgItem/GetDlgItemTextA(断输入框)4 X9 c7 `/ x! k! w0 ?1 ~3 F1 z
4、bp MessageBoxA(W)(断对话框)—Ctrl+N% W! E' R7 \9 `; O* x2 k8 S8 Q
5、字符串法—插件/搜索所有参考文本. O1 C# h* S- F' B
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的) e+ E  @3 [  k. q# n+ {
可以通过查找FormCreate/FormShow—-DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7. 窗口标题法 bp SetWindowTextA
8.F12堆栈调用( I1 F/ v, \* ?9 T* ~$ D' {5 L. [, b
注册表:, Z+ e! a* F9 ]7 t9 G
bpx RegCreateKeyExA 对于Delphi程序程序来说,用这个断点比较合适7 p3 }9 w. G8 |, f) d: `
bp RegCreateKeyExA 对于加了壳的程序
注册码:Rc1-420+用户名(不能为整数,)+C00L
C+破解
C类( {6 f2 ~5 C% _8 n
Point-H法
bp GetDlgItem(断按下按钮)
bp MessageBoxA(断对话框)9 j( K/ ^% Y- ~# k9 Q9 `/ U
字符串法
F12堆栈调用
窗口标题法 bp SetWindowTextA
★★C+程序专用断点★★9 S$ N4 \5 f2 p. J; J
bp lstrcmpA (KERNEL32.lstrcmpA) 比较用法
bp _mbscmp //比较) J; i) u! L, _. Y7 p) A
C类程序的经典断点:
bp GetWindowTextA(断按下按钮) //也是适用于其它语言
bp GetWindowTextLengthA(断按下按钮) //也是适用于其它语言
bp GetDlgItem(断按下按钮)            //也是适用于其它语言
bp GetDlgItemTextA
ds:[004021C8]=77C01881 (msvcrt._mbscmp)" M/ i; d) ^6 |! ^# N( p3 b
BC++破解
1、DEDE、PE Explorer作为强有力的辅助工具找按妞事件
2、Point-H法" G0 p6 m" C& K+ Q: i. p
3、bp GetDlgItem/GetDlgItemTextA(断输入框)
4、bp MessageBoxA(W)(断对话框)—Ctrl+N2 t7 ?/ `! m* K2 ^$ f4 T" {
5、字符串法—插件/搜索所有参考文本( `; |2 E& h- {7 s  I0 f
6、如果程序界面标题有[未注册/注册/VIP版/标准版/钻石版] 之类字样的
可以通过查找FormCreate/FormShow—-DEDE,找到关键标志位!
来判断程序怎么样的判断是否注册或者用户类型
7.窗口标题法 bp SetWindowTextA
8.F12堆栈调用
bpx RegCreateKeyExA 对于Delphi程序程序来说,用这个断点比较合适  A0 {6 W3 n4 c9 S3 s4 x
bp RegCreateKeyExA 对于加了壳的程序+ G3 w9 q  O+ j4 [/ O
MASM32 / TASM32破解% v) j( t, E9 U( U4 k7 N- F& I
入口点 :
004011C7 6A 00           push 0
004011C9 E8 5E070000     call 0040192C
004011CE A3 70614000     mov dword ptr ds:[406170],eax
004011D3 6A 00           push 0
004011D5 68 EE114000     push MASM32.004011EE
004011DA 6A 00           push 02 z. t' G5 S) g+ O0 a7 n8 ~
004011DC 68 C8000000     push 0C85 V* @  i) Y, j- `" `
Point-H法
bp GetDlgItem(断按下按钮)
bp MessageBoxA(断对话框)
字符串法
F12堆栈调用
窗口标题法 bp SetWindowTextA
OD常用断点2
1、限制程序功能函数
EnableMenuItem 允许、禁止或变灰指定的菜单条目. |5 [# X( B; n/ Q
EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)
2、对话框函数; T9 s2 y: _: h) X' F) R, ~
CreateDialog 从资源模板建立一非模态对话窗
CreateDialogParam 从资源模板建立一非模态对话窗
CreateDialogIndirect 从内存模板建立一非模态对话窗, A% g! T; y6 N% `3 N: Q, E) @" u; S
CreateDialogIndirectParam 从内存模板建立一非模态对话窗
DialogBox 从资源模板建立一模态对话窗' |9 {& i) U! O  b& d( |* q9 X
DialogBoxParam 从资源模板建立一模态对话窗
DialogBoxIndirect 从内存模板建立一模态对话窗
DialogBoxIndirectParam 从内存模板建立一模态对话窗
EndDialog 结束一模态对话窗/ q$ j/ M5 T0 n2 [
MessageBox 显示一信息对话框
MessageBoxEx 显示一信息对话框
MessageBoxIndirect 显示一定制信息对话框
GetDlgItemInt 得指定输入框整数值
GetDlgItemText 得指定输入框输入字符串7 f& A2 J  j" ]0 D! K
GetDlgItemTextA 得指定输入框输入字符串
Hmemcpy 内存复制 (非应用程序直接调用)* u8 g; I, @8 a3 S
3、磁盘处理函数1273?GAMEHK所有–admin?11326. h% {6 k. S2 d) r' A3 c$ ^
GetDiskFreeSpaceA 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量) A4 Z3 b' L. ?6 ~4 Q& q: x7 R# Z
GetDiskFreeSpaceExA 获取与一个磁盘的组织以及剩余空间容量有关的信息
GetDriveTypeA 判断一个磁盘驱动器的类型
GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母
GetFullPathNameA 获取指定文件的详细路径- x1 l6 @; W- H0 O$ n! Y
GetVolumeInformationA 获取与一个磁盘卷有关的信息
GetWindowsDirectoryA 获取Windows目录的完整路径名. D! B0 ^" p9 p5 F
GetSystemDirectoryA 取得Windows系统目录(即System目录)的完整路径名# g5 C+ r" g, F
4、文件处理函数
CreateFileA 打开和创建文件、管道、邮槽、通信服务、设备以及控制台
OpenFile 这个函数能执行大量不同的文件操作; j1 L  m, @; [. Q; K
ReadFile 从文件中读出数据: Z: Y$ e5 E& M) \
ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调5 I3 A! Z- r. M& U  _* E! t
WriteFile 将数据写入一个文件
WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调
SetFilePointer 在一个文件中设置当前的读写位置
SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾; v6 E9 s$ E+ [) e* G
CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等3 \* b/ Y8 N& {1 S! V8 T2 s0 Q
_lcreat 创建一个文件
_lopen 以二进制模式打开指定的文件2 \. O( m# R! v, v" a3 a9 ]  j
_lread 将文件中的数据读入内存缓冲区2 W" f/ F* S- u* p9 B* n
_lwrite 将数据从内存缓冲区写入一个文件' V2 `2 \' k5 \7 |0 M$ g/ |
_llseek 设置文件中进行读写的当前位置' ?0 G' x% x% s8 N' [- X: H
_lclose 关闭指定的文件
_hread 将文件中的数据读入内存缓冲区
_hwrite 将数据从内存缓冲区写入一个文件
OpenFileMAppingA 打开一个现成的文件映射对象
CreateFileMappingA 创建一个新的文件映射对象
MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间9 [6 K  X/ C+ K: ]/ H1 ^% @" B1 u
MapViewOfFileEx (内容同上)
CreateDirectoryA 创建一个新目录
CreateDirectoryExA 创建一个新目录
RemoveDirectoryA 删除指定目录) W* r, e' ~5 t, e+ L
SetCurrentDirectoryA 设置当前目录2 R6 Y9 @: C6 ?4 N1 P
MoveFileA 移动文件& T1 G' F6 y+ X+ j" ?  o* \
DeleteFileA 删除指定文件
CopyFileA 复制文件7 X% ^4 K; x% {  e2 e) k
CompareFileTime 对比两个文件的时间0 X9 Y+ a/ [3 _
SetFileAttributesA 设置文件属性# X$ Z& m" h1 e) s$ u; @. Y
SetFileTime 设置文件的创建、访问及上次修改时间
FindFirstFileA 根据文件名查找文件
FindNextFileA 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件' O2 N- G  ~6 m( D3 G
FindClose 关闭由FindFirstFile函数创建的一个搜索句柄( q! a* e  J( w6 {
SearchPathA 查找指定文件
GetBinaryTypeA 判断文件是否可以执行
GetFileAttributesA 判断指定文件的属性$ r  J, S3 ]) M
GetFileSize 判断文件长度- R% I" p* H5 n1 Z% d9 M+ u
GetFileTime 取得指定文件的时间信息8 A' V2 f8 x- `9 B
GetFileType 在给出文件句柄的前提下,判断文件类型
5、注册表处理函数0 D5 j% `" q6 @+ e$ S* v
RegOpenKeyA 打开一个现有的注册表项
RegOpenKeyExA 打开一个现有的注册表项* y9 u) B2 ^2 H8 H1 ~
RegCreateKeyA 在指定的项下创建或打开一个项+ O: ^. p  v+ ]# b: b3 _* t/ \
RegCreateKeyExA 在指定项下创建新项的更复杂的方式: O! \$ E; z7 c/ ^% H+ H
RegDeleteKeyA 删除现有项下方一个指定的子项7 d9 Q' Y5 X/ ~5 Q$ |! ^! D5 Z5 W9 q
RegDeleteValueA 删除指定项下方的一个值
RegQueryValueA 获取一个项的设置值
RegQueryValueExA 获取一个项的设置值
RegSetValueA 设置指定项或子项的值
RegSetValueExA 设置指定项的值
RegCloseKey 关闭系统注册表中的一个项(或键)
6、时间处理函数
CompareFileTime 比较两文件时间
GetFileTime 得文件建立,最后访问,修改时间  w8 H4 u9 u* b- |
GetLocalTime 得当前本地时间
GetSystemTime 得当前系统时间
GetTickCount 得windows启动至现时毫秒
SetFileTime 设置文件时间
SetLocalTime 设置本地时间$ @  W% x. @2 a# V& c- w& p2 S6 v6 B
SetSystemTime 设置系统时间
7、进程函数
CreateProcessA 创建一个新进程0 S1 e- u1 [" m1 e4 o
ExitProcess 以干净的方式关闭一个进程
FindExecutableA 查找与一个指定文件关联在一起的程序的文件名
FreeLibray 释放指定的动态链库
GetCurrentProcess 获取当前进程的一个伪句柄2 L3 T6 c3 l; W' k5 m* m
GetCurrentProcessId 获取当前进程一个唯一的标识符
GetCurrentThread 获取当前线程的一个伪句柄
GetExitCodeProces 获取一个已结束进程的退出代码: g; }8 ^; j# M2 t5 m+ b6 B
GetExitCodeThread 获取一个已结束线程的退出代码
GetModuleHandleA 获取一个应用程序或动态链接库的模块句柄
GetPriorityClassA 获取特定进程的优先级别  Z; _8 M/ G; ~( v
LoadLibraryA 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
LoadLibraryExA 装载指定的动态链接库,并为当前进程把它映射到地址空间, D/ D: J; T* S& \0 I3 j+ ?
LoadModule 载入一个windows应用程序,并在指定的环境中运行
TerminateProcess 结束一个进程
回复

使用道具 举报

苍天静
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
595
注册时间
2014-10-26
最后登录
1970-1-1

勋章墙

2014-12-9 12:24:09 | 显示全部楼层
这么好的资源,无条件抱走。
回复

使用道具 举报

325019289
等级头衔

等級:程序制作者

Rank: 6Rank: 6

积分成就
易币
贡献
主题
精华
金钱
积分
4236
注册时间
2014-11-11
最后登录
1970-1-1

勋章墙

2014-12-9 13:15:00 | 显示全部楼层
来看看楼主,天天好心情
(*^__^*)
回复

使用道具 举报

2991239158
等级头衔

等級:编程起步

Rank: 5Rank: 5

积分成就
易币
贡献
主题
精华
金钱
积分
1661
注册时间
2014-10-18
最后登录
1970-1-1

勋章墙

2014-12-9 15:38:36 | 显示全部楼层
优秀文章!神马都是浮云,支持!
回复

使用道具 举报

携寒
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
416
注册时间
2014-11-10
最后登录
1970-1-1

勋章墙

2014-12-9 22:12:59 | 显示全部楼层
来看看楼主,天天好心情
(*^__^*)
回复

使用道具 举报

已绑定手机
安。
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
420
注册时间
2014-10-29
最后登录
1970-1-1

勋章墙

2014-12-9 23:09:36 | 显示全部楼层
赞一个。
回复

使用道具 举报

fengxin0007
等级头衔

等級:编程起步

Rank: 5Rank: 5

积分成就
易币
贡献
主题
精华
金钱
积分
1342
注册时间
2014-8-22
最后登录
1970-1-1

勋章墙

2014-12-10 07:48:12 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

最终的幻象
等级头衔

等級:编程起步

Rank: 5Rank: 5

积分成就
易币
贡献
主题
精华
金钱
积分
1067
注册时间
2014-9-10
最后登录
1970-1-1

勋章墙

2014-12-10 08:12:24 | 显示全部楼层
优秀文章!神马都是浮云,支持!
回复

使用道具 举报

梦幻水晶
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
137
注册时间
2014-12-1
最后登录
1970-1-1

勋章墙

2014-12-13 16:55:17 | 显示全部楼层
很详细,支持楼主
回复

使用道具 举报

如果懒得打字,请选择右侧内容快捷回复 提醒:以任何方式进行『恶意灌水』的行为,进行封号处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

热点推荐上一条 /5 下一条

QQ|网站地图|手机版|小黑屋|乐易论坛-乐易网 | 湘ICP备19007035号

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表乐易立场!

娄底市乐易网络科技有限公司声明:乐易原创培训课程版权均为我公司所有,未经许可,不得擅自翻录,盗版,破解本站课课程,我们将保留法律诉讼的权利

GMT+8, 2024-5-23 15:26 , Processed in 0.063657 second(s), 71 queries .

Powered by Discuz! X3.4

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表