ad

在这儿,我转型了一些以前学过的手机软件手动式蜕壳的手记和美文,期待能给学过手机软件反方向蜕壳的朋友们一些协助。

1一些定义。

1.1机壳。

shell的全名应该是可执行文件資源缩小,这也是维护文档的常见方式。带壳程序流程能够立即运作,可是源码不可以查询。你只有在怒怼后网页源代码。

蜕壳是运用一种独特的优化算法对exe和DLL文件中的产品开展收缩和数据加密。实际效果相近winZIP,仅仅压缩包能够单独运作,缓解压力全过程彻底掩藏,所有在运行内存中进行。他们被额外到初始程序流程上,并由Windows载入程序流程载入到缓存中,随后在初始程序流程以前实行,以得到决策权。在实行全过程中,对原程序开展破译和复原,随后将决策权退还给原程序运行源代码。加上机壳后,原先的编程代码一般以读取的内容存有于硬盘文档中,实行时只在运行内存中复原,能够有效的避免破译者对体系文件的不法改动,与此同时避免程序流程被静态数据反汇编。

shell的种类一般分成二种:缩小shell和数据加密shell。缩小机壳的特征是减少手机软件的容积,数据加密维护并不是重5201;。数据加密机壳有很多种多样,不一样的机壳有不一样的着重点。有一些机壳仅仅维护程序流程,而另一些则给予附加的作用,例如给予申请注册体制,应用频次,时间限制等。

1.2 OEP

OEP:(初始通道点),程序流程的通道点。软件脱壳一般会隐藏程序的真正OEP(或是应用假OEP),因此大家必须寻找程序流程的真正OEP才可以进行蜕壳。

一般应用Ollydbg等动态性调节专用工具时,去壳程序流程会停在壳的预备处理块。即在缓解压力或破译程序流程的初始代码块以前,运作程序流程自蜕壳控制模块以后,会滞留在程序流程蜕壳以前的OEP部位,这也是数据归档程序流程的黄金时间。蜕壳时,在真真正正的OEP处设定int3中断点,就可以捕获编程代码段彻底恢复的情况。因而,寻找恰当的蜕壳计划方案OEP变成人力蜕壳的重中之重。

1.3 IAT

IAT:(导进详细地址表),导进详细地址表。由于导进涵数是由程序流程启用但其实行编码没有程序流程中的涵数,因此这种涵数的编码坐落于一个或好几个dll中。当PE文档载入到运行内存里时,Windows加载器载入DLL,并将启用导进涵数的命令与涵数的真实详细地址(动态性联接)密切相关,这必须进行导进表。导进的详细地址表有指标值涵数的真实详细地址。大部分去壳机在操作时都是会复建导进详细地址表,因而获得恰当的去壳机导进详细地址表也是手动式去壳机实际操作中的一个至关重要的问题。

2一些蜕壳方式。

2.1断点调试追踪法。

断点调试追踪法的机理是彻底走完程序流程的自蜕壳全过程,绕过一些循环系统修复码的精彩片段,用断点调试进到来确保程序流程不容易绕过OEP。那样,手机软件全自动蜕壳控制模块运作后,就可以抵达OEP并数据归档程序流程。

2.2 ESP法。

ESP规律是蜕壳的神器,也是最常见的蜕壳方式之一。

ESP规律的基本原理取决于程序流程中栈均衡的合理使用。在程序流程自破译或自缓解压力的环节中,许多shells会先消息推送当今的存储器內容,例如应用pushad,缓解压力后会消息推送以前的存储器值,例如应用popad。因而,当存储器从局部变量中出现时,编程代码会全自动修复,这时会开启硬件配置中断点。随后,在程序流程的所在位置,只需一点断点调试追踪,就非常容易抵达恰当的OEP部位。

2.3运行内存镜像系统法(二级中断点法)。

运行内存镜像系统法是在载入shell程序流程时,根据od的键盘快捷键ALT M进到程序流程的虚拟内存设置段。随后,根据2次加上一次性运行内存中断点,做到程序流程的恰当OEP部位。

运行内存镜像系统法的机理是,针对程序流程資源段和字符串常量的中断点,一般程序流程在自缓解压力或自破译时,会先浏览資源段获得所需資源,全自动蜕壳进行后再转到编程代码段。这时,当存有一次性运行内存中断点时,程序流程将在OEP处终止。

2.4向OEP迈开一步。

说白了一步蜕壳法抵达OEP,便是依据蜕壳的特性寻找最贴近OEP的汇编语言指令,随后丢掉int3中断点,当程序流程抵达OEP时数据归档程序流程。例如在一些缩小的shells中,popad命令十分贴近OEP或是Magic Jump。因而,运用Ollydbg的查找作用,能够检索到机壳的特点汇编代码,做到一步中断点抵达OEP的实际效果。

2.5最终一种出现异常方式。

最终一种出现异常方式的机理是程序流程在自缓解压力或自破译全过程中可能会开启很多出现异常。假如能精准定位上一次程序流程出现异常的部位,很有可能离全自动蜕壳进行部位非常近。如今,最后一个出现异常蜕壳方式能够应用Ollydbg的出现异常电子计数器软件,先纪录出现异常总数,随后重新加载,最后一个出现异常全自动终止。

2.6仿真模拟追踪法。

仿真模拟方式的基本原理是在Ollydbg下应用标准中断点。SFX等同于一个自缓解压力段。当自缓解压力段完毕时(eip值迁移到字符串常量),早已十分贴近OEP了,可是这类追踪方法会较为用时。

2.7“SFX”法。

“SFX”方式运用Ollydbg的OEP检索作用,能够选用立即在od寻找的OEP处终止程序流程。这时,自缓解压力早已进行,程序流程能够立即数据归档。

3一些轰炸的作法。

下列是试着应用以上方式手动式清除这种常见机壳的机壳常见问题目录。

3.1UPX轰炸手记。

最先,实行机壳检验:

exe脱壳教程-exe文件脱壳步骤-第1张图片最先,将程序流程放进OllyIce中,您能见到:exe脱壳教程-exe文件脱壳步骤-第2张图片随后在这儿试着应用ESP定律,即在第一次拆换ESP时,在ESP详细地址上设定一个硬件配置字浏览中断点,使编码通过UPX优化算法修复后,能够自动跳转到程序流程的一切正常通道。exe脱壳教程-exe文件脱壳步骤-第3张图片随后F5运作,并沒有立即跳到程序流程通道的踢腿部位,但能够见到UPX的踢腿就在眼下:exe脱壳教程-exe文件脱壳步骤-第4张图片因而,复原程序流程的通道点是0x00445151(您也能够根据断点调试实行往下自动跳转和F4绕过for语句回到来查询这一大自动跳转的部位。)随后到踢腿部位,跳到一切正常程序流程通道:exe脱壳教程-exe文件脱壳步骤-第5张图片随后删掉硬件配置中断点,应用LoadPE的数据归档作用数据归档可执行程序:exe脱壳实例教程-exe文件蜕壳流程-第6张图片最先调整图象尺寸,随后挑选彻底蜕壳,那样就可以获得第一步数据归档的程序流程,随后应用importREC修补数据归档程序流程的OEP。OEP的内容能够根据OD的数据归档作用查看,还可以立即填好45151:exe脱壳教程-exe文件脱壳步骤-第7张图片在导进纪录中填好恰当的键入详细地址,随后全自动检索IAT信息内容:exe脱壳教程-exe文件脱壳步骤-第8张图片随后点一下获得键入表,获得IAT改动后的程序流程涵数键入表,随后点一下表明失效涵数,开心的看到沒有失效涵数,随后就可以立即修补车翻文档了。exe脱壳教程-exe文件脱壳步骤-第9张图片挑选第一步刚数据归档的数据归档文档开展修补,修补后shell进行:exe脱壳教程-exe文件脱壳步骤-第10张图片这儿,针对缩小壳UPX,立即应用ESP基本定律,寻找OEP和dump程序流程十分便捷。

4.2泰罗克轰炸手记

这是一个泰洛克斯机壳:

exe脱壳教程-exe文件脱壳步骤-第11张图片1.最先,应用非常简单的last exception methOD:最先,将程序流程抛出去到OllyIce中,并在OD调节选择项中设定出现异常选择项。exe脱壳教程-exe文件脱壳步骤-第12张图片只保存不法运行内存浏览的出现异常,随后应用出现异常电子计数器软件。应用前,请消除空的中断点设定:exe脱壳教程-exe文件脱壳步骤-第13张图片程序流程一切正常运作后,重新加载程序流程,随后挑选流程2,在最后一个出现异常前终止:exe脱壳教程-exe文件脱壳步骤-第14张图片随后用Alt M转至运行内存对话框,SHIFT F9实行主编程代码段下的运行内存中断点:exe脱壳教程-exe文件脱壳步骤-第15张图片那样,程序流程在合理的OEP处终断,您能够挑选从控制模块中删掉剖析,以表明一切正常剖析的安装编码。随后应用LoadPE数据归档程序流程并校准程序流程印象尺寸。可是应用ImportREC v1.6F Fix版本号,键入恰当的OEP,获得涵数键入表的信息内容时,会发觉失效表针。用第一种方式修补后,用第三种方式彻底能够修补。exe脱壳教程-exe文件脱壳步骤-第16张图片再度点击修补数据归档修补以前数据归档的程序流程,shell就完成了:exe脱壳教程-exe文件脱壳步骤-第17张图片2.应用二级运行内存中断点方式:最先载入程序流程,忽视全部出现异常种类,随后在idata一部分设定运行内存中断点,随后SHIFT F9:exe脱壳教程-exe文件脱壳步骤-第18张图片终止后,再度在字符串常量设定运行内存中断点,再度SHIFT F9,能够同时抵达恰当的OEP:exe脱壳教程-exe文件脱壳步骤-第19张图片随后载入数据归档,随后修补IAT。修补方式与方式1同样。

3.函数表进行后寻找魔跳并修补数据归档程序流程:前二步加上运行内存中断点(idata,code),随后精准定位程序流程的恰当OEP。

exe脱壳教程-exe文件脱壳步骤-第20张图片随后,假如您应用LoadPE数据归档并修补它,它将与前2个同样。最先,应用ImportREC获得涵数键入表第一个部位的时钟详细地址。exe脱壳教程-exe文件脱壳步骤-第21张图片那麼函数指针的偏位详细地址便是0x005512C,再加上基址后便是0x045512C。这时,硬件配置在这个部位浏览双字中断点。再度SHIFT F9 F9忽视出现异常实行后,因为中断点会开启tElock的CRC校验不正确:exe脱壳教程-exe文件脱壳步骤-第22张图片因此务必绕开CRC校验才可以取得成功实行到硬件配置中断点部位,因此先中止程序流程,随后用Alt F9回到客户编码。点击确认按键后,程序流程在启用ExitProcess的部位中止:exe脱壳教程-exe文件脱壳步骤-第23张图片如今搜索能够绕过这一出入口的自动跳转(CRC分辨自动跳转),随后改动它并绕过它:exe脱壳教程-exe文件脱壳步骤-第24张图片找到应当改动的部位,可是改动后再次运作便会修复,因此先记录下来这一自动跳转的详细地址,0x00469622。再次运作后,在idata break处设定运行内存中断点,终止SHIFT F9,随后Ctrl G寻找改动点再改动。改动后设定以前的硬件配置中断点,那样就不容易开启CRC校验不正确。

数次挪动 F9后,表针能够在存储器对话框中一切正常见到和表明:

exe脱壳教程-exe文件脱壳步骤-第25张图片这时候,F8一步到位寻找魔跳……看见萧声的大视频显示屏,根据剖析疑是CRC跳获得魔跳的部位:exe脱壳教程-exe文件脱壳步骤-第26张图片在这儿写出魔跳的地点是0x0046973B,随后消除空udd文档,删掉硬件配置中断点,再度运作程序流程,随后在idata下终止运行内存中断点,随后Ctrl G寻找魔跳部位,改动自动跳转:exe脱壳教程-exe文件脱壳步骤-第27张图片随后在字符串常量下,运行内存中断点:exe脱壳教程-exe文件脱壳步骤-第28张图片随后实行SHIFT F9,终止时抵达OEP的部位:exe脱壳教程-exe文件脱壳步骤-第29张图片这时,数据归档程序流程后,IAT表早已修补,能够同时获得shell版本号程序流程:exe脱壳教程-exe文件脱壳步骤-第30张图片这儿试着了此外二种蜕壳方式,根据提早找寻OEP修补CRC校验后,立即数据归档IAT早已修补的程序流程。

3.3 PEncrypt轰炸手记。

exe脱壳教程-exe文件脱壳步骤-第31张图片先把程序流程丢入OllyIce,随后停在这儿,看上去挺怪异的:exe脱壳教程-exe文件脱壳步骤-第32张图片好的,重新加载程序流程,试着应用最后一个出现异常方式而不忽视全部出现异常,随后应用出现异常电子计数器软件,程序流程在最后一个出现异常处终止:exe脱壳教程-exe文件脱壳步骤-第33张图片假如F8这时倒台,程序流程将开启错误处理,随后它将不容易做到OEP。这时,大家必须查询局部变量数据信息:exe脱壳教程-exe文件脱壳步骤-第34张图片这时必须在0040CCD7处的F2处破中断点,随后SHIFT F9实行,那样就可以绕过这一坑了:exe脱壳教程-exe文件脱壳步骤-第35张图片随后是F8 F4经营,一直到OEP:exe脱壳教程-exe文件脱壳步骤-第36张图片用LoadPE蜕壳,用ImportREC修补后,尽管沒有失效表针,但或是没法运作:exe脱壳教程-exe文件脱壳步骤-第37张图片这时,用LoadPE复建PE涵数:exe脱壳教程-exe文件脱壳步骤-第38张图片exe脱壳教程-exe文件脱壳步骤-第39张图片

随后就可以一切正常运作了:随后它能够正确运作:

exe脱壳教程-exe文件脱壳步骤-第40张图片这一机壳选用断点调试追踪的蜕壳方法,一路绕过程序流程“圈套”,最后抵达OEP。除此之外,运用LoadPE的复建PE作用对程序流程开展了复建,最后完成了对数据加密机壳的蜕壳整个过程。

3.4有关轰炸FSG形变火炮的表明。

最先,实行机壳检验:

exe脱壳教程-exe文件脱壳步骤-第41张图片应用esp基本定律,先将程序流程丢进OllyIce,step F8观查ESP转变,当ESP第一次转变时,在ESP相匹配的详细地址设定运行内存硬件配置浏览word中断点,随后SHIFT F9运作,程序流程终止后,撤&144;硬件配置中断点,step F8:exe脱壳教程-exe文件脱壳步骤-第42张图片与F4一起绕过向后跳(循环系统),随后再次往下看,直至这儿:exe脱壳实例教程-exe文件蜕壳流程-第43张图片在这个jmp F4下,程序流程将飞走。表明编程代码早已在这个配置中释放出来了,因此查查看这一循环系统中能否有标准自动跳转。那样非常容易寻找魔跳的部位,随后大家回车键或是Ctrl G到00402666的部位,发觉的确是OEP,再次剖析,随后F2破中断点让程序流程去OEP:exe脱壳教程-exe文件脱壳步骤-第44张图片如果是FSG1.33,立即应用LoadPE数据归档文档,随后应用ImportREC修补,就可以一切正常shell了。可是,当应用ImportREC修补这里时,将发生一个失效表针:exe脱壳教程-exe文件脱壳步骤-第45张图片这儿立即切除(或删掉)这一表针,随后修补存档文件,发觉不能一切正常开启:

![在这儿添加图片叙述](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)![这里添加图片表明](https://img-blog . csdnimg . cn/6b2cb 9 be b 0804 EB 4 a 47 BCB 665 cebf 62f . png?x-oss- process=image/watermark,type _ ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text _ q1netiba5 luj 56cb 54 as5 as5 wy,size_12,color_FFFFFF,t_70,g_se,x_16)

随后,将修补后的程序流程丢入OllyIce F9立即运作:

exe脱壳教程-exe文件脱壳步骤-第46张图片这儿是形变机壳加上的掩藏堆,会造成程序流程出现异常撤出。这儿,立即删掉nop或是将以前的jle (check)改成jmp,随后将改动后的文档储存为文档。随后你能运作它。
qianqu
( 千趣源码网全面的综合平台 )
ad
ad
ad
ad
千趣源码