各种壳的简单脱法
ASPACK OEP通常标志push ****** / retn
单步
ESP (dd *******) 可行性:popad?
内存镜像法(忽略所有异常)
一步到达OEP(CTRL+F寻找popad)
模拟跟踪法(tc eip<*****) 不能有暗桩?//载入OD之后,点击运行如果可以正常启动软件,说明无暗桩
SFX法(忽略所有异常)
UPX
单步
ESP (dd *******)删除断点 (hr ******)
内存镜像法
一步到达
UPX DLL 【注意PE修改目录的重定位=EIP-PE基址】 CTRL+S 搜
xchg ah,al
rol eax,10
xchg ah,al
add eax,esi
F4下断 F8到OEP 10001759 55 push ebp 1000175A 8BEC mov ebp,esp 1000175C 53 push ebx
FSG1.33
单步跟踪 没实现的大跳转 跟随-下断F2-shift+F9-取消断点
ESP定律
模拟跟踪法(不忽略内存异常)忽略所有异常 (推荐) FSG2.0
单步
ESP定律 (专用)硬件执行断点 手动查找IAT FSG 2.0 -> bart/xt
3次内存镜像法~~~找未实现的大跳转~~~手工查找IAT PECompact 1.68 - 1.84 -> Jeremy Collake
单步 不能下断的附件未实现的跳转跟随,找许多未实现的跳转跟随...
ESP (关键句的下一行) 简单
模拟跟踪法 PECompact 2.5 Retail -> Jeremy Collake
下断点:BP VirtualFree。中断后,取消断点,Alt+F9
然后,ctrl+F ,查找 push 8000(特征码)
f2 ,下断,F9 ,运行,此时断了。单步f8
nspack1.3
单步
ESP
PEncrypt V4.0
最后一次异常法 loadpe修复 yoda's cryptor 1.2
内存镜像法 (方式1修复)
PETITE
ESP
EPE(老王的壳EncryptPE)
ESP定律(忽略所有的异常,手动添加以下异常0EEDFADE,C0000008 (INVALID HANDLE),隐藏OD)--期间OD提示:DebugBreak调用来自某个内存位置(这个位置每次调试都不一样)Shift+F9跳过这里--
删除断点-打开内存镜像找到00401000(CODE?)
Armadillo穿山甲
单进程
2次断点法,即是:
bp GetModuleHandleA / he GetModuleHandleA
bp GetModuleHandleA+5/he GetModuleHandleA+5*
bp GetCurrentThreadId*
程序自校验
两个OD都下断bp CreateFileA,F9,中断后都Alt+F9返回!
自校验 ExitProcess
去花指令:
bp VirtualFree Telock
最后一次异常法 (跟踪3 一个一个修复) 保存tree
模拟跟踪法(最后一次异常--模拟跟踪)
内存镜像法(忽略所有异常) 简单 tElock
maji跳 没有标志的区段下断,搜0A F6 89 54--改jmp--代码段下断,--OEP VB: 灰色按钮
ctrl+b 816c24
在JMP下断。
断下后F2,把push ebp改为retn或者,把这些代码全NOP掉! nSPack 3.7 -> North Star/Liu Xing Ping
ESP---内存镜像
kkrunchy ESP 找到未实现的大跳转
修复IAT CRTL+G 搜索RAV 下写入断点 F9 单步
在数据段Ctrl + G 输入相对虚拟地址找到IAT所在位置下硬件写入断点****
需要重新加载下 F9
ORiEN v2.11 - 2.12
ESP 单步--找个向上的跳转(far eax)
VB自校验 bpx papa
调用模块--VbaNew2 调用子窗口 子函数
VbEnd 退出
bp rtcFileLen dephi自校验 bpx ExitProess
bp FindFirstFileA F9 Alt +F9返回
ntdll.RtlDeleteCriticalSection ???
ACProtect 1.0x -> RISCO Software Inc.
1.忽略除INT3断点的所有异常
F9---SEH异常处数据跟随--下内存访问断点--shift+F9--F2--shift+F9--F2-shift+F9--清除内存访问断点--清除所有断点--codeF2--F9
2.忽略所有异常 idate下段F2 ---code下断F2
d RVA+基址 内存访问 Shift+F9 取消内存访问断点- 单步-
ACProtect/UltraProtect V1.0X-V2.0X -> RiSco *
cm的通用破解方法 (适合于小程序)
B--禁用所有断点--F9--E--进入程序的线程--bpx Squn--所有的命令设置断点--F9--f2-f9
|