脱壳——修复加密IAT】的更多相关文章

脱壳--修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.net/download/weixin_43916597/18372920 分析程序信息 首先先查看这个程序的信息,使用PEiD查看该exe程序 这里可以看出:编译器版本:vc6.0,壳的名称:ASPack 调用OD调试程序 很清晰的看得到程序最开始的OEP是pushad 自然而然就想到了对esp打断点…
作者:i春秋作家HAI_ZHU 0×00 前言 好久没有写文了,要好好开动一下了.很多事情要忙.这篇文章本来很早之前就要写的,但是因为很多事情就拖了很久. 前置内容 HAI_使用手册 知识总结 0×01 smali层静态分析 反编译,不多说. 然后来看启动的class. 调用run方法,和load方法. 这里有两个so文件载入. exec execmain 0×02 so层分析 libexec.so 查看JNIonload,发现并没有我们需要的内容. 这个时候,我们可以先尝试进行一下动态调试.…
来源:TechTarget中国作者:Michael Heller翻译:张程程 OpenSSL项目团队为其密码库发布补丁以修复一个严重的漏洞(该漏洞可能允许攻击者解密HTTPS通信),同时强化对Logjam的防御. 解密攻击漏洞是在OpenSSL处理某些特定情况下DH密钥交换时发现的.通常,OpenSSL只使用所谓的“安全”质数,但在OpenSSL1.0.2中,生成参数文件的新方式将重新启用一个质数.理论上讲,攻击者就可以使用这个值来解密加密的安全通信. 不过有咨询师指出这种攻击很难执行,因为它需…
前面讲了如何寻找OEP和脱壳,有的时候,Dump出来的时候不能正常运行,是因为还有一个输入表没有进行处理,一些加密壳会在IAT加密上面大做文章,用HOOK - API的外壳地址来代替真是的IAT的地址,让脱壳者无法正确的还原程序的原始IAT,使得程序不能被破解,所以我们处理这些被加密IAT的地址的办法是找到加密这些IAT的地址的跳转(就是Magic Jump),将它修改为强制跳转(JMP),使之无法加密IAT,从而达到脱壳修复的目的!因为程序的IAT是连续的排列的,所以我们只需要找到IAT的起始…
1 查看壳程序信息 使用ExeInfoPe 分析: 发现这个壳的类型没有被识别出来,Vc 6.0倒是识别出来了,Vc 6.0的特征是 入口函数先调用GetVersion() 2 用OD找OEP 拖进OD 发现 这个壳和我们的正常程序很像.但是并不是我们的真正程序入口 因为vc6.0特征的第一个调用的是GetVersion(),给GetVersion()下 硬件断点 //第一次断下来,但是根据栈回溯,调用者并不是我们的模块 //第二次断下来,就应该是了 //找到入口后 栈上右键 反汇编窗口跟随 /…
1 查看壳程序信息 使用ExeInfoPe 分析: 发现这个壳的类型没有被识别出来,Vc 6.0倒是识别出来了,Vc 6.0的特征是 入口函数先调用GetVersion() 2 用OD找OEP 拖进OD 发现 这个壳和我们的正常程序很像.但是并不是我们的真正程序入口 因为vc6.0特征的第一个调用的是GetVersion(),给GetVersion()下 硬件断点 //第一次断下来,但是根据栈回溯,调用者并不是我们的模块 //第二次断下来,就应该是了 //找到入口后 栈上右键 反汇编窗口跟随 /…
上一次做完代码段加密后,又接触到了新的加密方式:IAT加密 IAT加密是通过隐藏程序的导入表信息,以达到增加分析程序的难度.因为没有导入表,就无法单纯的从静态状态下分析调用了什么函数,动态调试时,也无法直接从调用处判断出调用的函数.从而增加了程序分析的难度. IAT加密思路如下: 1.把IAT信息全部删除掉,只留下DLL名和第一个调用函数的信息(目的是让程序在最开始运行时能正常调用那些初始化类的函数) 2.根据导入表的信息,自己实现函数加载,通过LoadLibraryA和GetProcAddre…
脱壳第二讲,手动脱壳PECompact 2.x PS: 此博客涉及到PE格式.所以观看此博客你要熟悉PE格式 首先,逆向inc2l这个工具,汇编中可能会用的 inc头文件转换为lib的工具 但是他有壳,先查壳. 发现是这个壳 利用Esp定律,脱掉这个壳. 首先,inc2l.exe是32位的,所以要放到虚拟机中. 一丶OD打开分析 1.OD分析 发现,首先给eax赋值,然后压栈eax,那么eax肯定会访问,那么我们F8到push eax的下面,也就是4022EA的位置 2.查看栈数据 查看栈数据.…
写在前面的话: Aspack是最常见的一种压缩壳,具有较好的兼容性.压缩率和稳定性,今天我们就来一起分析一下这个壳: 零.分析压缩壳: 0.在开始动态调试前,用PEID和LoadPE查看一些信息,做到心中有数: 1.了解了基本的信息后,我们将文件拖到调试器中,进行分析: 分析之前,要明确以下几点,这也是我们的目的(分析时,该做些什么): I).   找到原始OEP II).  dump文件: III). 如果需要修复文件,则进行修复,一般IAT: IV). 如果程序仍然无法运行,去掉脱壳后的随机…
本章教程中,使用的工具是上次制作的PE结构解析器,如果还不会使用请先看前一篇文章中对该工具的介绍,本章节内容主要复习导入表结构的基础知识点,并通过前面编写的一些小案例,实现对内存的转储与导入表的脱壳修复等. 关于Dump内存原理,我们可以使用调试API启动调试事件,然后再程序的OEP位置写入CC断点让其暂停在OEP位置,此时程序已经在内存解码,同时也可以获取到程序的OEP位置,转储就是将程序原封不动的读取出来并放入临时空间中,然后对空间中的节表和OEP以及内存对齐进行修正,最后将此文件在内存保存…