摘要:
简介 由于其他几种恢复符号的方法不是特别可靠,所以就有了这个魔改 Rizzo 的项目。 在不开优化的情况下,STL 模板中大部分函数的二进制实现和具体的实例化类型无关,只要编译选项相同即可正常匹配。 在编译选项对应的前提下,用这个 Rizzo 脚本匹配的成功率大于 95%。 其他方案的缺点 Bina 阅读全文
摘要:
提取代码 运行 lalamblambdadambda.exe,提示输入 flag。 监控文件读写,发现程序在 AppData\Local\Temp 下创建了 _MEI62682 文件夹。 通过分析可知程序是通过 PyInstaller 打包的 Python 3.8 代码。 使用 pyinstxtra 阅读全文
摘要:
项目简介 VTIL 项目,代表 Virtual-machine Translation Intermediate Language,是一组围绕优化编译器设计的工具,用于二进制去混淆和去虚拟化。 VTIL 与其他优化编译器(如 LLVM)之间的主要区别在于,它具有极其通用的 IL,可以轻松地从包括堆栈 阅读全文
摘要:
工具准备 Apktool: https://ibotpeaches.github.io/Apktool/install/ Android SDK: https://developer.android.com/studio/releases/platform-tools 修改源程序 首先使用 apkt 阅读全文
摘要:
分析题目 程序首先使用 openssl 中的 bignum 库对输入进行 RSA 加密 bborOT+ohG*,U:;@/gVIAZ-,t++LaZkOrk?UcSOKJ?p-J+vuSN?:e,Kc/?h-oH?:tthoqYYSPp-ZC+Yw:*jrxPymGYO/PvDOIivNYtvJ?M 阅读全文
摘要:
Windows 安装 CFF Explorer,勾选属性 File is a DLL,保存文件后缀名为 dll 外部调用程序如下,其中 0x11A0 为函数的偏移地址 #include <cstdio> #include <windows.h> typedef int (*func1)(__int6 阅读全文
摘要:
感谢队友 ay3 的输出 d1res0lve read 越界导致栈溢出 ssize_t vuln() { char v1[16]; // [sp+38h] [+38h] BYREF return read(0, v1, 0x28u); } 修改 read 长度即可 crash 没有检测使用状态和序号 阅读全文
摘要:
babyRe 主要加密代码如下 _BYTE *__fastcall encode(const char *a1) { _BYTE *v2; // [rsp+18h] [rbp-28h] signed __int64 v3; // [rsp+20h] [rbp-20h] int v4; // [rsp 阅读全文
摘要:
#include <cstdio> #include <cstring> typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; #define GETU32(pt) (((DWORD 阅读全文
摘要:
美团 CTF 上一道有趣的逆向题目 主要涉及:代码解密,远程注入,函数劫持 分析题目 题目给了一个 inject.exe 和 notepad2.exe 首先在 inject.exe 中输入正确的 key1 和 key2 后,inject.exe 会使用 key1 和 key2 来解密程序中的资源文件 阅读全文