授人以鱼不如授人以渔 定位功能call的方法思路是通用的,这一套流程对定位其他功能也适用 第二篇,以分析文本消息发送call为例,写代码调用实现发文本消息的功能 有什么想看什么主题,可以在评论区回复,随缘更新 环境准备 wechat x64版本 x64dbg ida 或者 ghidra debugv
环境准备 wechat x64版本 x64dbg ida 或者 ghidra debugview++ Visual Studio 2022 定位调试信息函数 对于大型软件来说,由于其庞大复杂的功能,为了开发人员更好的定位 bug,会输出调试信息辅助调试,对于逆向来说,有调试信息也会有助于更好的定位功
1. 下载符号到本地 要使用 SymChk.exe 实用程序下载 Windows\System32 文件夹中所有组件的符号文件,请使用以下命令行命令: symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com
经典的栈溢出基础题 analysis: checksec:没有Canary和PIE pwn_restaurant ➤ checksec restaurant
[HTB] gamepwn - LightningFast 这是个网络程序,问题来自于客户端请求包可以篡改 analysis & exploit: 抓包看到游戏走的是HTTP流量,配置Proxifier+Burp进行中间人流量修改,修改分数提交的请求即可,整个流程的数据交互如下: 这个修改的请求:
简单的题也有很多小细节上的知识收获 analysis: checksec:无PIE,其他全开 Bad grades ➤ checksec bad_grades [*] '/mnt/c/Users/selph/Downloads/HTB/pwn/Bad grades/bad_grades' A
CubeMadness1:直接修改内存 dw 目标是获取20个cubes,但是场地总共就6个,所以就是CE改数值即可 搜到三个值,直接改成20,出现flag: HTB{CU83_M4DN355_UNM4DD3N3D} CubeMadness2:修改加密内存 <
analysis: shellcode题: .text:00000000000012ED ; int __fastcall main(int argc, const char **argv, const char **envp) .text:00000000000012ED
analysis 分析的时候先别陷入细节,先看整体逻辑: __int64 __fastcall main(int a1, char **a2, char **a3) { int i; // [rsp+0h] [rbp-20h] int j; // [rsp+4h] [rbp-1Ch] i
analysis: int __fastcall main(int argc, const char **argv, const char **envp) { char v3; // al char tmp_byte; // [rsp+7h] [rbp-39h] unsigned int