关于新手破解问题的总结,大家来做做或者看看吧。
这个文章不是我写的,但是我总结了一些,写了点自己的看法,修改了原来的一些东西,求不喷,我只是个新手!!!谢谢大家了首先我们来了解几个语句:(破解的时候需要用的)
cmp a,b //cmp是比较的意思 !在这里假如a=1,b=2 那么就是a与b比较大小.
mov a,b //mov是赋值语句,把b的值赋给a.
je/jz //就是相等就到指定位置(也叫跳转).
jne/jnz //不相等就到指定位置.
jmp //无条件跳转.
jl/jb //若小于就跳.
ja/jg //若大于就跳.
jge //若大于等于就跳.
1. 当软件使用弹窗方式提示我们错误时,我们可以使用哪几种方式进行寻找关键跳?
堆栈法、搜字符串、push窗体、搜peek message或get message
补充:F12堆栈暂停法,API断点法,包含所有API,泛指一切API
利用堆栈中记录的API进行锁定,这样回答也可以,回答者:珈蓝夜雨 ,可以这样回答
补充几个API:
模态对话框和非模态对话框
DialogBoxIndirect
DialogBoxIndirectParam(A/W)
CreateDialogIndirect
MessageBoxIndirectA
MessageBoxIndirectW
获取编辑框文本,经过算法call,弹出错误
GetWindowTextA
GetWindowTextW
GetDlgItemTextA
GetDlgItemTextW
GetDlgItemInt
利用弹出网页,谈错误
ShellExecute,WinExec,,CreateProcess
----------------------------------------------------------------------------------------------------------------------------
3 g! D- _+ |2 D6 d2 E- c: R' {
2. 当软件不提示我们任何错误信息时,此时我们该使用何种方式进行寻找关键跳?
按钮事件、窗口标题、搜peek message或get message
补充:例子:GetWindowTextA,SetWindowTextA,
API断点法,包含所有API,泛指一切API
可以通过工具辅助查找,DEDE,VB Decompiler,等工具
可以通过脚本法朝朝按钮事件,delphi,VB,按钮事件脚本
F12暂停法 ----------------------------------------------------------
------------------------------------------------------------------------
3. 一个软件载入OD后,查找不到字符串的原因有几种?分别是什么?
到文本 到字节集 到文本 到字节集 到文本 .............、被加壳、 vm
补充:字符串倍加密,被加入花指令,有壳子没有脱掉,附件在dll里面,dll被加壳子
特殊,鸡生蛋类型,释放型,线程注入,特殊类型
- a2 Z2 [) {+ ]: ~
4. 程序正常脱壳后为什么无法正常运行?有几种可能造成此结果?该如何解决?$ S" ?6 `2 rh0 T" K4 qX# G( q
自校验:下exit断点,nop、输入表需要修复
补充:IAT未修复,有很多原因
自效验,双开OD对比
OEP不争取导致程序无法运行
注册壳子带SDK,比如ZProtect
附加数据,没有修复,winhex补上就ok
ExitProcess,ExitWindowsEx
7 L% O3 Aq0 T3 W& m. p% o
5. 说明什么是关键CALL,并且我们该如何寻找关键CALL?
被多处调用的,一般看堆栈窗口里出来用户名密码就是了
补充:关键call和关键跳很近,寄存器出现注册码,真注册码和假注册码对比
关键call,暂时想到这些
6. 修改关键跳时,什么时候使用NOP,什么时候时候JMP?& X' S. l) W. b5 Pt
直觉
补充:跟踪下去,提示错误,就跳过,如果跟踪下去( m) T2 U2 z1 a) m7 S
7. 在VB程序中,下API断点MessageBoxA为何不起作用?" U. o9 Y- Zv4 Y# [9 W6 L1 ?
bp rtcMsgBox,不谢,VB把WindowsAPI吃了
补充:VB把WindowsAPI吃了
以上说法,完全错误,VB有自己一套API专用函数,和其他任何语言不相通
特殊情况,MessageBoxA,也是可以断下
纠正恒大错误认识,下API断点MessageBoxA为何不起作用?
不是绝对的
-----------------------------------------------------------
8. 大部分程序关键CALL的返回值存放在哪个寄存器里?% o; W! ?- r/ j. o/ ~, i
EAX,返回值能放下就放,放不下就放地址,话说编译器写的程序都是这样吧,汇编语言写的就不知道了
补充,一般是EAX,经过特殊处理例外,非绝对
EAX:累加器 4 ^* u. _# _! [) g' x
EBX:基址寄存器 / w9 f1 h$ h) L: z. x
ECX:计数器
EDX:数据寄存器
ESI:源地址指针寄存器' d/ o! M9 Z% x, t: M1 R
DDI:目的地址指针寄存器' G& }8 `8 j% W, ~6 Y( M2 U
EBP:基址指针寄存器
ESP:堆栈指针寄存器 ( q; [s/ L/ E, F; \
9. 为什么带壳的程序要运行起来去401000处?401000处是怎么回事?
00401000虚拟地址初始段,程序领空初始段,内存初始段,方便查找内存中字符串,只要PE文件头没改过00401000就能帮大忙
补充:dll应该是100010007 o- o& g; `2 |" x+ {3 X/ I
10. 如何在系统领空快速返回至程序领空?
Alt+F9,返回用户,Ctrl+F9,执行到retn
补充:在堆栈中找到地址,反汇编窗口跟随
在代码段设置访问上设置中断
11. DeDe可以调试什么语言编译的软件?+ z, b6 O8 R. F4 H% O- P: R
BorlandDelphi??
回答正确,没什么补充3 ]2 y2 j/ u3 z1 }1 G' d& n$ y1 V
12. F8单步跟踪未启动的软件时,遇到程序跑飞该如何解决?
Ctrl+F2重载?F12暂停?忽略异常?
补充:F7进去分析
ANTI会让程序跑飞,壳子各种检测,OD插件设置不正确可以跑飞,正确设置OD插件即可
NET程序,VFP,PB,中间解释型语言,都不受OD控制,均会跑飞
-----------------------------------------------------------------------------------
13. 当遇到INI类型重启验证软件时,我们可以使用什么断点进行对其拦截?' Y+ ?! A5 e) ?4 M/ \
bp GetPrivateProfileStringA/W
补充:INI初始化文件相关2 g9 e, L+ i" i: A! M
bp GetPrivateProfileStringA
bp GetPrivateProfileInt3 d( k7 A- I4 A1 x
bp WritePrivateProfileString
bp WritePrivateProfileInt
ReadFile CreateFile
14. 当遇到退出暗桩时,有几种方式取消这个暗桩,该如何下断?' \# [% L" Z* j0 D! wf. {b
BP ExitProcess,+BP-OLLY自带
$ l* Y& x, _* ?% {- J- M
15. 什么语言编译的程序可以使用Push窗体法?Push窗体法该如何操作?! T0 C) B$ `4 if+ [* c
试过的,C语言可以 易语言可以
补充:VB可以,另外我想任何语言都可以用PUSH法& F% Y9 I, S, F$ ]
16. VB程序与其他大部分程序不一样,VB关键CALL下面的比较命令通常是与什么比较?
ebp,esp
补充:_vbaStrCmp_vbaStrComp _vbaVarTstEq 8 M8 L: @- m. I
17. 我们手动寻找并修复IAT的时候,IAT断首的地址应该减去谁?
00401000
18. 万能断点都能断下什么?他能在什么平台下使用?5 ]( h* N! Q~* P( O2 q5 s
易语言按钮和时钟
补充:楼主回答不正确
有很多同学没有回答对
万能断点命令:bpx hmemcpyXP可以用 有一位同学回答
后来学破解一般不知道这个函数
正确是 bpx hmemcpy是在win9x下用的,xp也可以用
关于这个函数说明:
HugeMEMoryCoPY,俗称万能断点,但在一般的编程书籍上很少提到,原因它是底层的东西,没有特殊需要,一般不直接调用。它的操作很简单,只是将内存中的一块数据拷贝到另一个地方,Win9x系统里很频繁地调用它处理数据。在WinNT/2K系统上相关的函数是memcpy,但在WinNT/2K上不同于Windows9x上,很少再调用memcpy来处理数据了,用此函数设断基本上什么也拦不住
19. F12暂停法的堆栈回朔其实说的就是一个怎么样的过程?
出现信息框,暂停,打开“调用堆栈”,messagebox a/w 显示调用,F2下断点,重载运行,Alt+F9返回用户,在上面下段
20. 假设一个JMP可以跳过错误提示,而这个JMP并没有起到跳过错误的作用,这是什么原因造成的?. ^3 o$ ]3 G: B# D& P6 v
JMP上方有跳过JMP的其他跳转或CALL,刚刚遇到的程序就是,哈哈~~
有异常处理函数,或者
程序还有其他地方的验证,或者改的地方不是关键地址
21. 当我们遇到一个重启验证时,该从什么地方进行破解才能彻底解决重启验证?r3 V' \( H. t4 _' R$ `* g
重启验证最好是寻码,如果是爆破就下退出断点,然后nop
补充:重启验证,一般是注册表重启验证,其他ini,dat,key,usb,各种狗
22. 字符串搜索时,是否应该输入完整提示信息?为什么?
一般情况不要,输入部分关键词会有意外惊喜,不过某些逗比程序会弄满篇字符串迷惑大家.......- u4 T1 r6 H5 z/ b
23. 论坛上很多人在求思路,这是怎么回事?- ~* \; Y9 X% S5 B0 k/ t. `
没求过,不知道 (专业装逼十五年,你,值得信赖file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps2D0.tmp.png)
补充:求破解思路,或者关键地址,就可以破解软件,这个恒大回答更好
24. 当我们按下F12暂停时有几种方法回朔?
按K 进堆栈窗口
7 ^5 z0 z' v0 H/ W# x! ?4 D% X; l; |; v
25. 暗桩是什么?暗桩什么功能?
退出、锁定鼠标键盘、蓝屏黑屏、关机重启、设置开机密码(小学生专用暗桩)、sysprep(我能说我用过?)、格盘,主要功能是防破解
--------------------------------------------------------------------------------
补充:回答很好,我在补充几点
自删除,脱壳子或者破解,删除自身,实践过
弹出网页,不断弹出网页,遇到过
释放病毒,脱壳子后释放病毒,威胁破解人,让他系统崩溃,重装系统。
-----------------------------------------------------------------------------
26. 我们在修改关键CALL返回值的时候,常用的两指令都有谁?分别怎么使用?
mov eax,1/0 retn
补充:patch代码法,指令太多,知道人自然会用+ c+ e1 T! j- t
27. 能把OD修改为某某人专版的软件叫什么名字?; a' E. }/ R$ q* m6 T
WinHex,OD,IDA Pro,NotePad,Uedit32
补充:
28. 脱壳后自效验的程序在效验时,他在用什么与什么对比?# M1 e4 ~5 a1 L& O" F/ l: L
MD5、SHA1、CRC、版本号、描述、作者
补充:base64,rsa,诸多算法
文件大小比对等
29. 对于时间限制软件都有哪些类型?
取系统时间和使用期限对比,联网获取时间和使用期限对比,还有限制每次的运行时间,_启动窗口_创建完毕延迟(2000)销毁()
补充:, e1 P2 W/ I( N1 g; z/ Q* Z
OD,IDA,PEID,FFI,WINDBG,LORDPE,ImpREC FINAL
SEH异常处理
PE文件格式
API处理函数
都必须有深刻理解
另外一门高级语言必须会
32位汇编
E语言
VB,
最好掌握 c++,或者delphi
聪明的人学delphi
专业学c++
就这样了,希望大家看看,好好总结下经验
我是看了Shark恒 的帖子,然后百度到的答案...... 谢谢分享,看教程遇到瓶颈,不会了,所以找找看有没有什么启发的帖子,谢谢了,看的有点乱,感觉好难啊,看来还要努力呀 哇,不错~~ 高手啊 我好多都不会 能把乱码去掉吗?看着蛋疼 {:301_1000:}写的很不错呀! 学习了,总结的非常不错 很好,不错,谢谢。
页:
[1]
2