摘要:
脱壳——修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.net/download/weixin_43916597/18372920 分析程序信息 首先先查看这个 阅读全文
2021年5月4日
2021年5月3日
摘要:
脱壳——UPX脱壳原理 脱壳步骤 1 找到OEP 2 dump(导出)内存文件 3 修复 1 找到OEP 1 程序运行先从壳代码运行,壳代码执行完之后会跳转到真正的OEP,也就是是说第一步,首先要找到真正的OEP 如何找到OEP 大部分情况下,壳代码会在一个单独的区段里面,壳代码执行完一定会跳转到原 阅读全文
2021年4月28日
摘要:
搭建infer扫描C系列代码的环境 需求 使用infer扫描C系列的代码 环境要求: clang编译器:扫描C系列代码使用的编译器,因为infer内部采用的是clang所以不能使用gcc代替 infer扫描器 cmake: 源码安装clang需要使用 安装cmake 下载 https://cmake 阅读全文
2021年4月26日
摘要:
脱壳与加壳-加壳-7-修复重定位表 前面采用的方案是:给被加壳的程序添加一个新的区段,然后使用link命令把壳代码的数据段和代码段全部合并在一起合并到.text段里面,然后把壳.dll文件加载到程序的内存,然后把壳的代码段copy到被加壳的程序的壳代码段里面,然后读取壳.dll文件中的.reloc重 阅读全文
2021年4月25日
摘要:
脱壳与加壳-加壳-6-代码实现加密导入表 BOOL CPeUtil::GetImportTable(){ DWORD TableLen = 0; //1得到导入表地址 PIMAGE_IMPORT_DESCRIPTOR pImportTable = (PIMAGE_IMPORT_DESCRIPTOR) 阅读全文
摘要:
脱壳与加壳-加壳-5-加密导入表 导入表知识可以:https://www.cnblogs.com/Sna1lGo/p/14461530.html 步骤 1 找到导入表 2 提取导入表的数据结构,自己用自己的数据结构来存储,把原本的导入表的数据结构加密,不让操作系统来处理 3 把存储的操作系统的数据结 阅读全文
2021年4月12日
摘要:
脱壳与加壳-加壳-4-修复dll文件的重定位表 1 先将一个dll文件load到内存,然后找到dll文件的第一个区段也就是我们的代码段加数据段也就是壳代码 2 然后将这个dll的第一个区段复制到加壳程序的最后一个区段 3 由于ImageBase发生变化 需要修复重定位表,要修复重定位表就得获取重定位 阅读全文
2021年4月11日
摘要:
Clang Static Analyzer-使用手册-各种分析和代表程序 当你在写一个Checker的时候通常你需要先决定你是否需要path-sensitivity来处理,或者就用语法检测来处理 path-sensitivity比语法检测慢得多得多,但是之所以慢不是因为添加了Checker的原因,而 阅读全文
摘要:
脱壳与加壳-加壳-3-加壳代码实现 壳代码如何存在 壳代码以什么形式存在?壳代码,就是一段指令,我们这里将其编写成为一个dll文件,把他的代码段,当成是壳代码 但是dll文件也是一个PE文件,也会有各自各样的区段,所以可以采用link指令,把所有区段合并成一个区段,然后把这个区段复制过去复制到前面开 阅读全文
2021年4月9日
摘要:
脱壳与加壳-加壳-2-加密解密 加壳涉及的两大对象: 1、被加壳的程序 2、壳代码 1 处理被加壳的程序 1 添加区段 2 加密目标程序的区段 3 将壳代码写入新的区段 4 修改模板程序的入口点 上一章我们已经解决了添加区段 2 壳代码 2.1壳代码的功能: 2.1.1 解密功能 对加密的代码进行解 阅读全文