首先需要知道的是 -> 壳程序在表中进行了加密 壳程序运行的时候对导入表中的各个IMAGE_IMPORT_DESCRIPTOR中指向的表(不确定是IAT还是INT)进行解密,然后获得对应的函数名称 接着就是通过GetProcAddress来获取函数名称函数地址,然后再把加密出来的名称再次进行抹除 接着通过一个算法构造出来一个push指令和xor指令,使得运算...
脱壳过程 首先进行查壳分析,可以看到特征检测到是一个tElock 0.98的壳程序 因为这个壳开头段内容可能存在硬件和内存断点的检测,在这里用ESP定律已经是不行了,这里定位OEP可以通过GetProcAddress,需要注意的是先让GetProcAddress执行多次次数先,然后再给代码段下执行断点,否则还是会存在断点的检测 寻找OEP参考:https://www....
到达程序入口点,ctrl+A进行分析之后发现,第一个函数没有显示Getversion()。推测可能被加密了。 壳当中生成加密IAT的步骤是:获取原始IAT的函数地址,并保存到一定位置。申请空间,构造新的IAT函数。原始函数地址填充代码段,构造新IAT函数代码进行加密。将新构造的函数地址填充到IAT表。跟进去这个地址查看一下,发现返回值...
加壳了,类型为aspack压缩壳。 一般的Win32程序从_start开始执行,然后到main函数。压缩加壳程序一般是从_start开始,然后到load函数,把代码恢复,然后jmp跳转到真正要执行的代码位置区域,最后到main开始执行。脱壳其实就是上下文恢复的过程,从...
压缩壳和低强度加密壳的脱壳小结及简易脱壳法 一、脱壳的一般方法 脱壳方法现在能找到的资料很多,总结起来主要有这么几种方法: 1、单步跟踪脱壳 2、ESP定律脱壳 3、特征代码脱壳 4、内存镜像脱壳 5、最后一次异常脱壳 6、ollydbg SFX自动跟踪脱壳 这些方法可以去网上找一篇帖子“普通壳的脱壳方法和脱壳技巧,叫新手...
一、避开IAT加密,处理输入表 命令行下断:bp GetModuleHandleA+5,Shift+F9 通过所有异常,断下后取消断点,Alt+F9返回!二Ctrl+F搜索特征码,搜索所有命令:mov dword ptr ds:[edi],eax 来到代码处: 用SVKP 1.32插件去下花指令!并修改反代码 方法即是:把popad和mov dword ptr ds:[edi],eax翻转下,nop掉原先的po...
第四课 常见压缩壳与加密壳-脱壳基础知识入门 加壳软件按照其加壳目的和作用,可分为两类:一是压缩(Packers),二是保护(Protectors)。压缩这类壳主要目的是减小程序体积,如ASPacK、UPX和PECompact等。另一类是保护程序,用上了各种反跟踪技术保护程序不被调试、脱壳等,其加壳后的体积大小不是其考虑的主要因素,如...
[原创]一个自写IAT加密壳的详细分析(含脱壳脚本) 壳比较简单,但却是我在15pb学到的第二个壳。详细分析一下,还是能学到很多东西,现在这里将壳中的重点和难点在这里分析一下,并详细演示脱壳的思路,最后给出了OD的脱壳脚本。希望能对一些刚入门的同学一些帮助...
首先声明:本人是壳盲,还懒,本来由于水平太差不敢班门弄斧的,可是看了szdbg大侠的文章:【原创】手脱UPX加密壳及修复IAT表,原文链接:http://bbs.pediy.com/showthread.php?t=62098,感觉这个UPX有点意思,遂下来玩玩,粗粗解决下后竟发觉手痒痒,遂产生此文!还请各位不要见笑。这里所的不同思路只是相对szdbg大侠...
我在《(之四)》一文中大言不惭地搞了一个“通用脱壳机”,当时我甚至不知道壳还有“压缩壳”和“加密壳”之分。在网友的提示下自觉汗颜,气不敢出,忙翻书充电。找了一个ASProtect 1.31版尝尝(不敢找更高的版本,因为我现在还不知道什么叫SDK)。果然ASProtect名不虚传,无数的“暗道机关”加“地雷”,初入者...