世界快播:exe脱壳教程_exe文件脱壳步骤
这里整合了一下之前自己学习软件手工脱壳的一些笔记和脱文,希望能给新学软件逆向和脱壳的童鞋们一点帮助。
(相关资料图)
1 一些概念
1.1 加壳
加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码。要经过脱壳才可以查看源代码。
加壳是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过Windows加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。
壳的类型通常分为压缩壳和加密壳两类。压缩壳的特点是减小软件体积大小,加密保护不是重点。加密壳种类比较多,不同的壳侧重点不同,一些壳单纯保护程序,另一些壳提供额外的功能,如提供注册机制、使用次数、时间限制等。
1.2 OEP
OEP:(Original Entry Point),程序的入口点。软件加壳一般隐藏了程序真实的OEP(或者用了假的OEP), 我们需要寻找程序真正的OEP,才可以完成脱壳。
一般加壳程序在使用Ollydbg等动态调试工具时,会停在壳的预处理块。即处在对于程序原始代码块的解压或解密操作之前,在运行完程序自脱壳模块后,会停留在程序加壳之前的OEP位置,此时是dump程序的最佳时期。脱壳时在真实OEP处下int3断点,就可以捕捉到程序代码段完全恢复的状态。因此,寻找加壳程序的正确OEP,也成了手动脱壳时的第一要务。
1.3 IAT
IAT:(Import Address Table),导入地址表。由于导入函数就是被程序调用但其执行代码又不在程序中的函数,这些函数的代码位于一个或者多个DLL中。当PE文件被装入内存的时候,Windows装载器才将DLL 装入,并将调用导入函数的指令和函数实际所处的地址联系起来(动态连接),这操作就需要导入表完成。其中导入地址表就指示函数实际地址。多数加壳软件在运行时会重建导入地址表,因此获取加壳程序正确的导入地址表也是手动脱壳操作中的一个关键问题。
2 一些脱壳方法
2.1单步跟踪法
单步跟踪法的原理就是通过Ollydbg的单步(F8)、单步进入(F7)和运行到(F4)功能,完整走过程序的自脱壳过程,跳过一些循环恢复代码的片段,并用单步进入确保程序不会略过OEP。这样可以在软件自动脱壳模块运行完毕后,到达OEP,并dump程序。
2.2 ESP定律法
ESP定律法是脱壳的利器,是应用频率最高的脱壳方法之一。
ESP定律的原理在于程序中堆栈平衡的合理利用。由于在程序自解密或者自解压过程中,不少壳会先将当前寄存器内容压栈,如使用pushad,在解压结束后,会将之前的寄存器值出栈,如使用popad。因此在寄存器出栈时,往往程序代码被自动恢复,此时硬件断点触发。然后在程序当前位置,只需要少许单步跟踪,就很容易到达正确的OEP位置。
2.3内存镜像法(二次断点法)
内存镜像法是在加壳程序被加载时,通过OD的ALT+M快捷键,进入到程序虚拟内存区段。然后通过加两次内存一次性断点,到达程序正确OEP的位置。
内存镜像法的原理在于对于程序资源段和代码段下断点,一般程序自解压或者自解密时,会首先访问资源段获取所需资源,然后在自动脱壳完成后,转回程序代码段。这时候下内存一次性断点,程序就会停在OEP处。
2.4一步到达OEP
所谓的一步到达OEP的脱壳方法,是根据所脱壳的特征,寻找其距离OEP最近的一处汇编指令,然后下int3断点,在程序走到OEP的时候dump程序。如一些压缩壳往往popad指令距离OEP或者Magic Jump特别近,因此使用Ollydbg的搜索功能,可以搜索壳的特征汇编代码,达到一步断点到达OEP的效果。
2.5最后一次异常法
最后一次异常法的原理是,程序在自解压或自解密过程中,可能会触发无数次的异常。如果能定位到最后一次程序异常的位置,可能就会很接近自动脱壳完成位置。现在最后一次异常法脱壳可以利用Ollydbg的异常计数器插件,先记录异常数目,然后重新载入,自动停在最后一次异常处。
2.6 模拟跟踪法
模拟跟踪法的原理就是使用Ollydbg下条件断点,SFX相当于是一个自解压段,在自解压段结束时(eip的值转到代码段时),已经距离OEP很近,但是这种跟踪方法会比较耗时。
2.7 “SFX”法
“SFX”法利用了Ollydbg自带的OEP寻找功能,可以选择直接让程序停在OD找到的OEP处,此时自解压已经完成,可以直接dump程序。
3一些脱壳实践
下面给出整理的使用以上方法,自己尝试手动脱这几种常用壳的脱壳笔记。
3.1UPX脱壳笔记
首先进行侦壳:
首先把程序扔到OllyIce里面可以看到:
然后这里尝试使用ESP定理:即在ESP第一次改变时,对ESP的地址设置硬件字访问断点,这样可以在代码被UPX算法还原之后,跳转到程序的正常入口处。
然后F5运行,并没有直接到跳转到程序入口处的大跳位置,但是可以看到UPX的大跳就在眼前:
所以被还原后的程序入口点就是0x00445151(通过单步往下走,F4略过往回走的循环语句,也可以看到这个大跳的位置。)接下来走到大跳位置,跳到正常程序入口处:
然后去掉硬件断点,并使用LoadPE的dump功能dump目标程序:
先修正映像大小,然后再选择完整脱壳,这样可以得到第一步dump的程序,然后再使用ImportREC修复dump程序的OEP,OEP的信息通过OD自带的dump功能查询或者直接填45151:
将正确的入口地址填入ImportREC中,然后自动搜索IAT信息:
然后点击获取输入表得到修正IAT之后的程序函数输入表,然后再点击显示无效函数,愉快地发现没有无效函数,那么就可以直接修复转存文件了。
选择刚刚第一步dump下来的转储文件进行修复,修复完成之后脱壳完成:
这里对于压缩壳UPX,直接使用了ESP定律,可以很方便找到OEP并dump程序。
4.2 tElock脱壳笔记
这里脱的是一个tElock的壳:
1、先使用最简单的最后一次异常法:首先把程序扔到OllyIce里面设置OD调试选项中的异常选项,
仅保留内存非法访问异常,然后使用异常计数器插件,在使用前要清空断点设置:
等到程序正常运行后,重新加载程序,再选择第二步,停在最后一次异常之前:
然后用Alt+M转到内存窗口,对主程序code段下内存断点,SHIFT+F9执行:
这样程序就中断在了正确的OEP处,可以选择从模块中删除分析以显示正常分析的汇编代码。然后使用LoadPE dump程序,并修正程序映像大小。但是在使用ImportREC v1.6F Fix版,输入正确的OEP,获取函数输入表信息时,会发现无效的指针。使用方法一修复后,再使用方法三可以完全修复
再点击Fix dump,可以修复之前dump下来的程序,脱壳完成:
2、使用二次内存断点法:首先载入程序,将所有的异常类型忽略,然后在idata段设置内存断点, 然后SHIFT+F9:
停下来后再次在code段设置内存断点,再次SHIFT+F9执行,可以直接达到正确的OEP中:
然后LoadPE dump,然后修复IAT。修复方法同方法1。
3、寻找magic jump以及修复函数表完成后dump程序:前两步还是加内存断点(idata、code),然后定位到程序的正确OEP处
然后如果这时使用LoadPE dump后修复,就和前两种一样了。这里先是使用ImportREC获取函数输入表第一个位置的指针地址。
然后得到函数指针偏移地址在0x005512C,加上基地址后为0x045512C,这时在该位置下硬件访问双字断点。再重新SHIFT+F9忽略异常执行后,由于下了断点,会触发tElock的CRC校验错误:
所以这里要先绕过CRC校验,才能成功执行到硬件断点位置,所以首先暂停程序,然后使用Alt+F9返回用户代码。点击确定按钮后,程序暂停在调用ExitProcess的位置:
现在要向上找一找能跳过这个退出的跳转(CRC判断跳转),然后进行修改并跳过:
找到了应该修改的位置,但是如果修改之后重新运行是会被恢复的,所以先记下来这个跳转的地址,0x00469622。重新运行之后,在idata断设置内存断点,SHIFT+F9停下后,再Ctrl+G找到修改点再修改。修改完之后再设置之前的硬件断点,这样不会触发CRC校验错误了。
无数次的SHIFT+F9之后,在寄存器窗口可以看到指针以及能够正常显示:
然后此时F8单步,找magic jump……看小生大大的视屏是通过分析疑似CRC跳转得到magic jump的位置:
这里记下来magic jump的地址是0x0046973B,然后清空udd文件,删除硬件断点,再次重新运行程序,然后在idata下内存断点停住,然后Ctrl+G找到magic jump位置处,修改跳转:
然后在code段下内存断点:
然后SHIFT+F9执行,停下来就到了OEP的位置:
这时候再dump程序,IAT表已经被修复,可以直接获得脱壳版程序:
这里尝试使用了另外两种脱壳方法,并且通过预先找OEP的方式,修复了CRC校验后,直接dump到了IAT被修复了的程序。
3.3 PEncrypt脱壳笔记
先把程序扔到OllyIce里面,然后程序停在这里,看起来蛮怪的:
好吧,重新加载程序,尝试使用最后一次异常法,不忽略所有异常,然后使用异常计数器插件,程序停在最后一次异常处:
如果此时F8单步下去,程序会触发异常处理,然后又到不了OEP了。这时需要看一下堆栈数据情况:
这时需要在0040CCD7处F2下断点,然后SHIFT+F9执行,可以跳过这个坑:
然后接下来就是F8+F4的操作,一路直到OEP:
用LoadPE脱壳,然后用ImportREC修复后,虽然没有无效指针,但是还是不能运行:
这时候用LoadPE的重建PE功能:
然后就可以正常运行了:
这个壳使用了单步跟踪的脱壳方法,一路跳过程序“陷阱”,最后达到OEP。并且使用了LoadPE的重建PE功能,对程序进行了重建,最终完成了这个加密壳的脱壳全过程。
3.4 FSG变形壳脱壳笔记
首先进行侦壳:
使用ESP定律,首先把程序扔到OllyIce里面,F8单步走,观察ESP变化,在ESP第一次发生变化时,对ESP对应的地址处设置内存硬件访问WORD断点,然后SHIFT+F9运行,在程序停下来之后,取消硬件断点,进行F8单步:
用F4略过向后的跳转(循环),然后继续往下找,一直到这里:
在这个jmp下面F4,程序会跑飞。说明程序代码在这个循环中就已经释放完毕,所以向上找找这个循环中有没有带条件的大跳。这样很容易找到magic jump的位置,然后我们Enter或者Ctrl+G到00402666的位置,发现果然是OEP,重新分析,然后F2下断点,让程序走到OEP:
如果是FSG1.33,直接使用LoadPE dump文件,然后使用ImportREC修复,就可以正常脱壳了。但是这里在使用ImportREC修复时,会出现一个无效指针:
这里直接剪掉(或者删掉)这个指针,然后修复转存文件,发现无法正常打开:
![在这里插入图片描述](https://img-blog.csdnimg.cn/6b2cb9beb0804eb4a47bcb665cebf62f.png?x-oss- process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Luj56CB54as5aSc5pWy,size_12,color_FFFFFF,t_70,g_se,x_16)
然后再把修复后的程序,丢到OllyIce中F9直接运行:
这里是变形壳添加的一个暗桩,会导致程序出现异常退出,这里直接nop掉或者把之前的jle(校验)改成jmp,然后保存修改另存文件。然后就可以运行了
标签:
电脑
-
cpu温度过高会怎么样?cpu温度高自动关机怎么办?
cpu温度过高会怎么样CPU温度过高会自动开启保护系统,关闭的计算机或者直接就卡死,而且当CPU温度高时CP...
-
cpu使用率多少算正常?如何优化cpu使用率?
cpu使用率多少算正常CPU使用率其抄实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程...
-
cpu使用率过高怎么解决?cpu使用率过高是什么原因?
cpu使用率过高怎么解决电脑cpu使用率高怎么办? 怎么解决关于CPU过高这个问题相信以前不少朋友也遇到过...
-
如何查看计算机CPU信息? Linux系统下如何查看CPU与内存等硬件信息?
随着现在电脑的不断升级换代,对于人们的帮助也越来越大,而我们要想电脑能够最大限度的发挥作用,就需...
硬件
- sata硬盘是什么意思?sata硬盘跳线怎么设置?
- 显卡a卡和n卡有什么区别?各自有哪些优缺点?
- cpu插槽类型有几种?CPU插槽常见故障有哪些?
- cpu散热器怎么拆?CPU散热器如何选择哪种好?
- CPU散热器的作用是什么?CPU散热器怎么选择?
- 电脑显卡的常见故障有哪些?如何解决?
- 电脑显卡故障能修复吗?如何判断显卡好坏?
- 电脑显卡坏了如何更换?电脑显卡更换需要注意什么?
- cpu温度80度正常吗?CPU温度高于80度会烧坏吗?
- cpu温度怎么查看?cpu温度怎么降下来?
- Office提示你的许可证并非正版怎么关闭?该如何操作?
- 谷歌浏览器打开就是百度怎么关闭?谷歌浏览器打开为什么是百度?
- 鲁大师卸载后LuDaShi文件夹删除不了怎么办?该怎么操作?
- 如何更新本地电脑dns解析缓存?何更新本地电脑dns解析缓存方法分享
- 世界快播:exe脱壳教程_exe文件脱壳步骤
- 不知所措是什么意思
- 焦点要闻:古城运营的模式有哪些_平遥古城商业模式分析
- 拼多多商家在哪里进货,拼多多网店5种拿货渠道
- 热头条丨换ip的软件有哪些_永久免费换ip安卓软件
- cc漫画网站免费
- 下半年推重磅新品 凯迪拉克品牌 4 月销售 17,867 台 天天时讯
- 明日方舟基石干员有哪儿些(明日方舟基石干员推荐攻略)[多图]|报道
- 信息流产品的推送原理_信息流产品的3个方面及作用分析 快资讯
- 北冥数码专营店陈子豪淘宝网址 北冥数码专营店陈子豪
- ai怎么去颜色_ai怎么去色 资讯
- 热推荐:2023年5月6日国内ios手游氪金榜
- 诗鬼是指哪位诗人_诗鬼
- 湖南“候鸟守护者”行动网络在全国首创四级联动护鸟模式_世界聚看点
- 明年3月竣工投用!熊出没主题酒店建设有序推进-每日信息
- 忘记wifi密码怎么查看自己的密码_忘记wifi密码怎么查看|天天快资讯
- 闫晓楠TKO安德拉德打出最开心一战 期待与张伟丽演绎中国德比|天天速递
- 天天播报:磁约束聚变能研究成为中科院首个开放创新试点领域
- 车险基础知识题库_车险基础知识
- 魔兽世界英雄榜 023dir_wow8 0英雄榜人物查询 世界即时
- dnf画面卡住不动是什么问题_dnf画面卡
- Polestar 2显示其漂亮的后端
- 【】国家队一季度持股曝光 重仓26只个股逾百亿元
- 农业农村部:全力保障小麦稳产丰收 赤霉病防控面积达3.53亿亩次
- 氢能产业链建设专家咨询委员会成立
- 三伏天养生吃什么祛湿 三伏天养生吃什么 天天热点评
- 速读:机构最新调研路线图:周大生、鱼跃医疗受关注
- 恭喜皇马,再见米兰?7冠球星归属反转,利益最大化,他没有犯错|焦点速读
- 法拉利首款SUV订单排到2025年 短讯
- 退市警惕!超40股罕见集体跌停 176股上榜“黑名单”... 每日讯息
- 北京首批15家市级全民数字素养与技能培训基地挂牌 环球今日讯
- 立夏:拉鲁湿地鸟欢腾
- 时讯:守正创新久久为功办好人民满意的教育!虞爱华主持召开市委教育工作专题会议
- 隧道内数吨钢筋结构性垮塌!3人被埋29米深井,消防紧急救援|全球动态
- 山东产研院硅基微纳制造公共技术服务平台全线贯通 天天速看
- 天天热头条丨一生必去的中国10个最美地方 新疆喀纳斯上榜,第一非常壮观
- 广东省东源县发布暴雨橙色预警
- 灵翼幼龙声望
- 世界实时:工商管理类包括哪些专业 工商管理类专业就业前景
- 玛莎拉蒂ghibli价格多少 玛莎拉蒂ghibli落地大概多少钱_大概81.40万元起
- 天天看热讯:杨军到保山产业园区调研
- 天舟五号货运飞船顺利撤离空间站组合体
- 正面诉求(关于正面诉求介绍)
- 即时焦点:洛克王国怎么快速升级农场_洛克王国怎么快速升级100
- 天天信息:创业板涉及互联网保险的个股一览(附名单)
- 每日动态!温度继电器故障的判断(温度继电器)
- 【云言警句】倘若检察官李睿与律师童雨辰结为伉俪……-播资讯
- 全球信息:43名共和党参议员致信反对提高债务上限
- 周杰伦回怼狗粉嘲讽
- 环球看点!绿豆百合汤的功效作用 绿豆百合汤的功效
- 唐朝多少年灭亡的_唐朝多少年
- 福建省三明市2023-05-06 19:53发布雷电黄色预警|天天速看料
- 组图丨蒸湘区:金银花里收“金银”
- 今日热搜:打开选择性粘贴对话框快捷键_在excel中,选择性粘贴对话框有哪些选项简介介绍
- 用途是什么意思-用途 焦点速讯
- 以创新精神和开放姿态与世界同行事件简单介绍
- 驾驶员边开车边打瞌睡,失控超野车“骑”上了绿化岛_当前热点
- 2023顺德均安镇公办初中一年级招生方案|今日讯
- 华鑫证券:给予盐津铺子买入评级
- 资料员是做什么的|世界今头条
- 观察:希德尼娅的骑士第三季什么时候出来 希德尼娅的骑士第三季什么时候出
- 探寻仡佬族傩戏面具背后的雕刻艺术
- 南京秦淮区举办第二届“有温度的城市更新论坛”-全球时快讯
- 大溪水命最怕啥_大溪水命的命运如何
- 淮阴工学院:涵养文化育人沃土 加强书香校园建设 资讯推荐
- 国内最好的购物网站有哪些_口碑最好的15个电商平台_全球球精选
- 2023中央军委后勤保障部文职人员报名时间表一览
- 淄博火了,锦州急了,唐山?
- 05月06日山东丙烯腈为9500元
- 德赛西威拟投建中西部基地项目,计划投资约 31.6 亿元
- 精选!诈骗了钱还能追回来吗
- 中颖电子:目标自下半年起缓步降低存货水位 环球最新
- 中国信通院:一季度我国互联网投融资略有反弹 披露金额环比上涨37.8%
- 【天天播资讯】工信部批复5G地空通信试验频率
- 深圳市市场监管局光明局马田所多管齐下抓实食品安全
- 世界观速讯丨“中国青年五四奖章”获得者汪威:在乡村振兴的大舞台书写青春
- 世界快讯:拼多多最新股权:创始人黄峥为最大股东持股26.5%
- 专业运动营养 助力健康中国——蒙牛与南开大学共同成立营养研究联合实验室
- 宁波首个!新业态劳动用工调解工作室开张
- 世界播报:excel表格怎样设置快捷键_EXCEL表格如何设置一个快捷键
- Openlayer获得480万美元种子轮融资
- 世界快播:无畏契约斗牛犬介绍 斗牛犬使用攻略
- 全球速递!多家银行集体下调存款利率!意味着什么?
- 新农保查询系统怎么查 新农保查询系统
- 每日报道:梦回唐朝,感受西安大唐不夜城的繁华夜色!
- 环球信息:抢占氢能示范新高地! 苏州金龙海格氢能公交首都上线!
- 60岁买众安保险一年交多少钱?要交多少年?
- 世界微动态丨每日热文:下周重点数据和大事件前瞻:美国CPI携手英国央行利率决议来袭
- 美国牧场主批白宫在边境移民危机上撒谎:我们毫无安全感 天天亮点
- 焦点快播:直击2023中国移动5G发展大会千平展区:5G让未来触手可及
- 游侠对战平台官网_游侠对战_动态
- 几个月未进行高水平训练 纳达尔宣布退出罗马大师赛
- 环球实时:太平洋给予顾家家居买入评级
- 当前聚焦:巴彦淖尔乌拉特前旗:借绿生金 生态更优
- 全球快讯:恩比德:我没拿到足够多球权 我想利用绿军的包夹为队友创造机会
- 15万买家用车,可以看看这款东风轩逸,用料配置诚意到了!_天天快讯
- 广西特岗教师工资待遇_特岗教师工资-天天热文
- 热资讯!乌龙养血胶囊多少钱一盒?它主治什么病? 乌龙养血胶囊被处罚
- 册亨县坛坪村:和美乡村入画来
- 天天热头条丨分享up同款游戏怎么玩
电竞
数码
事件
- 讯飞“星火”认知大模型发布会召开,现场演示聚焦业界目光05-07
- 速度起飞!Win11精简版系统成功安装在4GB显存中05-07
- 员工不转朋友圈被罚1万且开除?法院判了05-07
- 环球视点!青岛街头老人走失,多亏了这群热心人出手相助……05-07
- 详解湖勇二三战一边倒:分差27分+30分遭诟病 4因素惹祸NBA着急吗05-07
- 国家医保局公布2023年一季度跨省异地就医直接结算情况 热门看点05-07
- 受贿1246万余元,威海市原副市长周永迪一审获刑十年_每日简讯05-07
- 山东泰山队遭逆转05-07
- 我是民营企业家|林凡儒:既要苦干实干巧干,又要精益求精 天天快资讯05-07
- 罗湖火车站高铁_罗湖火车站05-07
- 视焦点讯!南方强降雨今日逐渐收尾,中东部地区明天开启晴朗升温模式05-07
- 中国加快5G行业应用规模化推广 最新快讯05-07
- 新能源SUV别乱选!最新年度质量榜:大众ID.6 X夺冠,理想ONE第五05-07
- 成都大熊猫繁育研究基地通报多起不文明行为 环球聚焦05-07
- 吵架猝死不赔?法院给出答案05-07