[本节脱壳未成功, 稍后尝试文章链接里面的教程]基础脱壳教程7:手脱tElock 0.98b1壳

基础脱壳教程7:手脱tElock 0.98b1壳

1. 最后一次异常法

OD 载入, 发现一开始就是个向上的跳转
调试设置 把所有的异常去掉
然后 shift+F9 看看多少次之后程序会跑飞

3、问异常法脱壳去掉忽略异常后怎么无法暂停。
解答:OD插件--StrongOD--Options--Skip Some Exceptions选项取消,重启OD再试试。

发现 17 次之后程序跑飞
然后我们运行 16 次
然后看堆栈窗口, 找到有 SE句柄 就是 SE处理程序 的这个 数据
然后再Ctrl+G, 输入SW句柄前的地址
然后下断点, shift+F9, 取消断点, 接着单步跟到 OEP.

但是我自己脱壳的时候发现, 最后单步跟踪会出问题, 莫名其妙跳不过循环......

我们用 OD 插件脱壳
发现无法运行

ximo 用汉化版的 ImportREC 发现无法修复, 于是他用英文原版修复

下面是他用英文版的步骤 :
IAT AutoSearch > Get Import > Show Invalid, 发现很多无效的函数
首先右键 Trace Level 1(Disasm), 发现无法跟踪
然后用 Trace Level3(Trap Flag), 发现软件挂掉未响应
用 OD 的进程的话会死掉, 估计是软件 bug

我们打开原来那个需要脱壳的程序
然后再用 ImportREC 载入, 输入 OEP, 自动查找 IAT, 获取输入表, 显示无效函数
然后我们再用等级 3 跟踪一下, 这时候程序开始跟踪了
等它修复完, 显示无效函数 发现还有 5 个无效函数无法修复, 现在我们直接将其 剪切
修复转储 后发现可以运行, 查壳发现已经脱壳.

2. 模拟跟踪

使用模拟跟踪法的前提是, 程序没有 SEH 暗桩
SEH暗桩
请问下暗桩的原理是什么
但是我们刚才已经看到了这个程序有着许许多多的 SEH 暗桩, 理论上是无法使用模拟跟踪法了
但是, 刚才发现 shift+F9 17 次之后程序跑飞, 也就是 shift+F9 16 次之后程序就能运行了, 就说明 shift+F9 16 次之后程序就没有暗桩了
既然如此, 我们应该就可以用模拟跟踪法了吧 ?

首先我们 shift+F9 16 次, 再次找到 SE句柄, 转到, 下断点
接着我们模拟跟踪法试一下, 找到内存 alt+M, 找到包含 SFX 的这一项
然后命令行输入 tc eip<0042c000, 0042C000 是 SFX 这一行的地址
回车发现 OD 正在跟踪, 然后直接跳到 OEP.

3. 两次内存镜像

alt+M 找到内存, 找到程序段第一个 .rsrc 下断
再次 alt+M 找到内存, 找到第一个 .text 下断
运行直接跳到 OEP.

重点还是修复

等级3跟踪。

论坛上关于本节的补充

手脱tElock v0.98图文教程

论坛上别人的笔记https://blog.csdn.net/obuyiseng/article/details/51168