博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
脱壳_详细_使用的方法_03
阅读量:5329 次
发布时间:2019-06-14

本文共 5982 字,大约阅读时间需要 19 分钟。

1、第11课

  基础脱壳教程11:附加数据的处理方法    [Overlay]

  工具:overlay最终版

  WIN HEX或HEX WORKSHOP

 

  【80】【00:25】壳"nSPack 1.3" 北斗的壳,最后有个 "[Overlay]"

  【138】【00:45】OD载入

    【180】【00:59】快速脱一下,直接 一步直达法

    【245】【01:21】OD插件脱壳

    【278】【01:32】发现脱壳后的111.exe 不能运行

    【299】【01:39】LoadPE 修正镜像大小(没有进行"完整转存"的操作)  【327】【01:47】ImportREC修复

    【374】【02:04】还是没法运行

  【430】【02:22】处理附加数据,网上工具:overlay最终版  (卡巴 会报毒)

  【488】【02:42】手动的方式来处理

    使用工具:WIN HEX 或 HEX WORKSHOP

    【627】【03:28】把要脱壳的程序 用"HEX WORKSHOP"打开,把数据滚动条 拉到最后,向上翻,一直 翻到第1次出现全部为0的数据的时候(大家耐心一点,不要错过了)(ZC: 这个全0 的数据区域需要多大?这里是不是在找最后一个节?最后一个节 就是放Overlay数据的地方吗?)(ZC: 可以弄个小工具 做这个事情,从后往前找),【800】【04:28】找到了,【828】【04:35】从这里开始复制,点住shift键,向下拉,拉到最后,右击 复制。Hex Workshop 文件 打开 选脱壳后的那个exe,同样拉到最后,在这个软件的最后,把附加数据 粘贴上去,Hex Workshop 文件 另存为 另一个名字的exe

      【969】【05:22】处理完附加数据之后,PEiD查壳,发现 有"[Overlay]"了,发现 能够运行了,这就是处理附加数据的方法

      ZC: 疑问:直接往上贴就行了?不需要在PE结构里面设置相关结构体的值?

      ZC: 我暂时的理解是这样:本课的例子,加壳后 exe大小没变,于是 [Overlay] 的相对位置不变?之前不能运行的脱壳后的exe 大小是不是比 脱壳前 小?然后贴上附加数据之后 大小就一样了?待验证。

        ZC: 如果真是这样的话,加壳前后 exe大小变化,那么 [Overlay] 的相对位置就会不同?直接往脱壳后的exe后面贴附加数据的话 还行的通不?

 

  【1065】【05:53】再教 一种计算的方法

    【1090】【06:03】用LoadPE打开 需要脱壳的程序,看一下 区段,找最后一个区段,【1210】【06:42】找 最后两个字段 ROffset&RSize 实际偏移量 和 实际大小(ZC: 这里的R是 "实际"/"Real" 的意思?V是 虚拟,R是 实际,貌似 蛮OK的...)。 【1280】【07:07】把 ROffset/RSize 的值相加 8800+400=8C00 【1360】【07:33】将 待脱壳exe 载入 Hex Workshop 中,右击 转到 偏移(Ctrl+G) 输入8C00(选"十六进制") 点击"转去",就是 我们刚才 手动翻 找到的位置了(ZC: 那也就是说 附加数据 在所有的节的后面,这样貌似 定位起来也方便),后面的操作和前面 手动的一样 【1495】【08:18】原来的好多空数据,最好 别去覆盖它 (ZC: 看到【1453】待脱壳的exe的文件大小为 0x83D20,【1565】已脱壳的exe+附加数据 总大小为0x9A120,确实是靠 最后一个节的边界 来定位附加数据的吗?PE头中没有 最后一个节之后数据的信息,∴ 附加数据 不会被加载到内存,因此 只能靠 最后一个节的ROffset&RSize 来定位附加数据)

 

2、第12课

  基础脱壳教程12:自校验的去除方法

  下断

  bp CreateFileA

 

  【125】【00:41】没找到 带自校验的软件,做了一个例子 讲个方法

  【195】【01:05】ASPack的壳

  【205】【01:09】OD载入,快速的脱一下壳

    OD插件脱壳

    【310】【01:43】PEiD 查看脱壳后的exe,VC++5.0。程序 能跑起来,但是报警 "程序被非法修改!"

    【365】【02:01】ImportREC修复一下

    【415】【02:18】运行exe 内存错误

    【470】【02:35】ImportREC显示 输入表 只有一个kernel32.dll,一般情况下是不可能的。得 手动查找IAT

      【510】【02:50】随便找个CALL,OD 命令行输入 "d 4251B8"(ZC: 这里就是kernel32.GetVersion),向上拉 找到全0的区域(此处为 IAT开始),【595】【03:18】大小 随便的写了0x1000

        【673】【03:43】等级1 修复,直接剪掉 没法修复的

      【727】【04:02】程序跑起来了,但是报警 "程序被非法修改!"

 

  处理自校验的问题

  【800】【04:28】把脱完壳的exe 也用另一个OD载入

  【860】【04:47】下断 bp CreateFileA(文件刚开始的是否 读取文件)(ZC: 内存中的exe 读 硬盘上的exe,然后计算校验,然后再比较,他 应该用的是这种方式),两边都下断,两边都F9,(【915】【05:05】ZC:视频中看不全 参数,自己弄的时候可以看一下,前面猜的是否准。) 两边都 "返回到用户代码"

    ZC: 他 把原来的校验值 放在哪里了?是放在了 全局变量里面了吗?可以自己跟一下 分析一下。

    【1130】【06:16】一边 跳转没实现 【1180】【06:30】另一边 跳转实现了。只要把跳转改掉就行,改成 相反的跳转 或者 直接 NOP掉,保存修改

    【1295】【07:10】程序 正常运行

 

  【1473】【08:10】ZC: 原来的校验值 是通过参数传到这里的?貌似不对啊,这里是 不相等 则跳转

 

  【1660】【09:12】本课 去自校验的方法,主要就是:开2个OD,两边同时 调试 看它们 在哪里执行了不同的 跳转。

    有的 自校验 比较厉害

3、第13课

  基础脱壳教程13:脱壳的简单应用——软件的汉化及DIY

  1、先查壳
  2、有壳就脱壳
  3、对软件进行破解、汉化、美化等DIY

  工具:

    resource hacker
    peexplorer
    getvbres ............VB类的汉化、DIY
    xnresource
    等等

 

  【208】【01:08】qqspirit.exe 壳FSG 2.0,用 resource hacker进行资源编辑

    【288】【01:35】无法 进行资源编辑

 

  【468】【02:35】QQ个性网名昵称查看器.exe (VB) 壳ASPack 2.12

    【580】【03:13】脱壳

    【640】【03:33】可以运行,不需要修复了

    【760】【04:13】getvbres 打开 1.exe

      修改资源

      【950】【05:15】有长度限制 (ZC: 应该是指 修改的字符串的长度)

      【1055】【05:50】更新当前程序,没法更新 ∵ 该软件没有注册

      【1200】【06:40】getvbres 注册完毕,更新当前程序 成功 --> 显示"已改"

    【1235】【06:51】运行软件,发现已经改过来了

 

  【1300】【07:12】qqspirit.exe 壳 FSG 2.0

    【1315】【07:18】快速 脱一下壳,ESP定律。LoadPE脱壳 ,ImportREC修复,手动查找IAT(直接 剪切 无效的) 【1595】【08:51】程序能够运行

 

  【1655】【09:11】VC类的汉化、DIY:resource hacker、peexplorer、xnresource 都可以使用

  【1700】【09:25】VC的程序一般用 resource hacker

    脱壳之后,还是 不能 编辑资源

    【1753】【09:43】∵ 手动脱壳 没有脱干净 (可能是 手动查找IAT的时候,将 IAT大小设置为0x1000 制造了很多垃圾指针)。

    【1780】【09:52】用 FixRes.exe修复一下

    【1837】【10:11】现在 resource hacker 可以编辑 资源了

      【2025】【11:13】点击"编译脚本(C)",另存为

    【2080】【11:33】exe资源信息 已经改过来了

 

  【2127】【11:47】peexplorer 修改 VC的exe

 

  【2245】【12:27】btengine.exe,Borland C++ 1999 没壳

    【2315】【12:50】resource hacker 打开 btengine.exe,是用不了的,∵ BC++和Delphi 有一个特有数据 RCData

    【2412】【13:23】peexplorer 打开 btengine.exe

      【2747】【15:14】已经改过来了

 

  【2852】【15:49】xnresource 打开 VC的exe

    优点: 可以可视化的进行修改资源

    【2960】【16:25】汇编比较厉害的话,还可以自己增加功能 (ZC: 怎么增加,他 没说...)

 

4、第14课

  基础脱壳教程14:手脱ASPACK的变形壳

 

  【430】【02:23】要用 Aspack变形壳0.1汉化版.exe 来加壳,exe必须先加Aspack壳(??\aspack212r\ASPACK.EXE)

  【510】【02:49】PEiD查壳 什么也没有发现。"EP区段" 写的是 ".aspack"。

    有时 PEiD 提示 "什么也没有发现",可以从 "EP区段" 来判断一下,当然也不一定准确 ∵ 区段(ZC: 名)可以自己改

 

  【636】【03:31】OD载入

    ESP定律 ==> 程序 直接跑飞了

  【760】【04:13】OD重新载入,单步法 (近CALL 就F7跟进,远CALL就F8)(ZC: 那到底 多远的CALL算远CALL?)

    【1138】【06:18】LoadPE脱壳,ImportREC修复

    【1240】【06:52】可以运行

 

  【1393】【07:43】Aspack变形壳0.1汉化版.exe,PEiD 提示 "什么也没有发现","EP区段" 写的是 ".皇后"...

  【1473】【08:10】OD载入 Aspack变形壳0.1汉化版.exe

    ESP定律 ==> 【1565】【08:41】向上的JMP,下一条指令 F4 ==> 程序跑飞

      【1730】【09:36】来回的在 相同的(差不多)指令地址 JMP来JMP去 【1775】【09:51】而且在往上JMP的指令下面 还不能F4,看上去是一个死循环,但是我们发现程序是可以正常运行的 (ZC: OD中程序能跑飞,说明 这里不是壳对OD采取的措施)

      【1860】【10:19】往上JMP的指令处 下F2断点,多F9几次 【1880】【10:26】有时向上跳,有时 向下跳,往下跳的时候 F8跟下去 也不行 (ZC: ∵它还不是最后一次从这里跳出去,程序还是会执行到这里,再跳。可以数 它跳了多少次(N次)后 程序跑飞,然后用N-1次 再F8跟 )

        【2075】【11:30】(ZC: 和我想的一样) 用最后一次异常法的思路。【2190】【12:09】F9 * 58次 程序跑飞

        【2300】【12:45】F9 * 57次 ==> 【2455】【13:37】ESP定律法 ==> 【2500】【13:55】来到OEP (ZC: 这个是什么程序的OEP?怎么不认识?...),OD插件脱壳,LoadPE 修正 镜像大小(习惯上 每次脱完壳 都修正一下 镜像大小 比较好),ImportREC修复 【2623】【14:33】程序可以运行

 

  【2665】【14:47】主要讲授,如何处理 (ZC: 假性)死跳转的问题

 

5、第15课

  基础脱壳教程15:ASPACK变形壳(续) 及 学会用脚本进行脱壳

 

  【273】【01:31】QQ个性网名昵称查看器.exe 壳 ASPack 2.12

  【295】【01:38】OD载入

    【345】【01:55】OD -->插件 -->ODbgScript --> 运行脚本 --> 打开... --> 【422】【02:20】选择aspack_212.txt -->脚本自动运行,弹出2个对话框,自动运行到OEP --> OD插件脱壳 --> 程序运行OK

    【607】【03:22】用 脚本“UPX,NsPacK,Aspack2.11-2.12 集成通用脱壳脚本.osc” 脱壳

 

  【690】【03:50】用脚本脱壳 不一定准确,不一定到达真正的OEP 。壳 稍微有点变形 就没法到OEP了

 

  【726】【04:01】memcollate.exe 用OD载入

    用 脚本“UPX,NsPacK,Aspack2.11-2.12 集成通用脱壳脚本.osc” 脱壳,也是 壳 ASPack 2.12

    【785】【04:21】脚本 来到了 假的OEP,【850】【04:43】向下脱 单步法 --> 程序跑飞

  【939】【05:12】OD重新加载,用 脚本“UPX,NsPacK,Aspack2.11-2.12 集成通用脱壳脚本.osc” 脱壳,单步,【982】【05:27】近CALL F7

    【1318】【07:18】来到 OEP 【1358】【07:32】OD插件脱壳,程序运行OK

 

C

 

转载于:https://www.cnblogs.com/debugskill/p/5583215.html

你可能感兴趣的文章
python中numpy.r_和numpy.c_
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>