我可是会飞的啊 主要方向:re,pwn

微信逆向:防撤回消息

依然是从日志出发 日志分析 从日志出发,清空日志,然后撤回消息,然后暂停打印新的日志,得到如下内容:(为了方便看,这里筛选出撤回相关的部分) 网络相关的略 21 2.319700 7932 WeChat.exe (2024-7-10:10:14:12:657 25604)-i/SyncMgr:net

selph 发布于 2024-07-24

微信逆向:防多开检测原理和绕过

本篇主要从日志和反编译代码的角度,分析一下定位到防多开功能,以及原理和绕过 绕过代码不是本文重点,选自网上的一种有趣的方法进行介绍(参考资料[0]) 日志分析定位 打开一个wechat,然后用调试器打开另一个,在载入wechatwin.dll的时候注入模块打印日志,然后运行起来得到如下内容: 2 6

selph 发布于 2024-07-15

微信逆向:定位功能调用(以文本消息发送为例)

授人以鱼不如授人以渔 定位功能call的方法思路是通用的,这一套流程对定位其他功能也适用 第二篇,以分析文本消息发送call为例,写代码调用实现发文本消息的功能 有什么想看什么主题,可以在评论区回复,随缘更新 环境准备 wechat x64版本 x64dbg ida 或者 ghidra debugv

selph 发布于 2024-07-03

微信逆向:hook 强制输出调试信息

环境准备 wechat x64版本 x64dbg ida 或者 ghidra debugview++ Visual Studio 2022 定位调试信息函数 对于大型软件来说,由于其庞大复杂的功能,为了开发人员更好的定位 bug,会输出调试信息辅助调试,对于逆向来说,有调试信息也会有助于更好的定位功

selph 发布于 2024-07-02

[HTB] pwn - Restaurant

经典的栈溢出基础题 analysis: checksec:没有Canary和PIE pwn_restaurant ➤ checksec restaurant

selph 发布于 2024-05-24

[HTB] gamepwn - LightningFast

[HTB] gamepwn - LightningFast 这是个网络程序,问题来自于客户端请求包可以篡改 analysis & exploit: 抓包看到游戏走的是HTTP流量,配置Proxifier+Burp进行中间人流量修改,修改分数提交的请求即可,整个流程的数据交互如下: 这个修改的请求:

selph 发布于 2024-05-24

[HTB] pwn - Bad grades

简单的题也有很多小细节上的知识收获 analysis: checksec:无PIE,其他全开 Bad grades ➤ checksec bad_grades [*] '/mnt/c/Users/selph/Downloads/HTB/pwn/Bad grades/bad_grades' A

selph 发布于 2024-05-23

[HTB] gamepwn - CubeMadness1~2

CubeMadness1:直接修改内存 dw 目标是获取20个cubes,但是场地总共就6个,所以就是CE改数值即可 搜到三个值,直接改成20,出现flag: HTB{CU83_M4DN355_UNM4DD3N3D} CubeMadness2:修改加密内存 <

selph 发布于 2024-05-19

[HTB] pwn - Execute

analysis: shellcode题: .text:00000000000012ED ; int __fastcall main(int argc, const char **argv, const char **envp) .text:00000000000012ED

selph 发布于 2024-05-18

[TBTL CTF 2024] re - Floopowder(Frida Hook 巧解算法问题)

analysis 分析的时候先别陷入细节,先看整体逻辑: __int64 __fastcall main(int a1, char **a2, char **a3) { int i; // [rsp+0h] [rbp-20h] int j; // [rsp+4h] [rbp-1Ch] i

selph 发布于 2024-05-17

osu!gaming CTF 2024 (2 pwn)

前言 比赛总共4个pwn,做了2个,剩下1个没看,1个没懂 pwn - betterthanu 题目分析 给出了源码: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdint.h> FILE *flag

selph 发布于 2024-03-05

[libc 2.35 源码学习] IO_FILE 篇 - 任意地址读&写

简介 对IO_FILE的一种利用方法是,不修改虚表,修改IO_FILE结构中的数据指针,可以实现任意地址读和任意地址写 IO_FILE 结构 pwndbg> dt FILE FILE +0x0000 _flags : int +0x0008 _IO_rea

selph 发布于 2024-03-04

[libc 2.35 源码学习] IO_FILE 篇 - vtable & IO_validate_vtable

源码分析 IO_validate_vtable 位于:libio/libioP.h /* Perform vtable pointer validation. If validation fails, terminate the process. */ // 确保vtable指针合法,不然

selph 发布于 2024-03-03

[libc 2.35 源码学习] IO_FILE 篇 - 相关结构体

简介&前言 FILE 在 Linux 系统的标准 IO 库中是用于描述文件的结构,称为文件流。 FILE 结构在程序执行 fopen 等函数时会进行创建,并分配在堆中。我们常定义一个指向 FILE 结构的指针来接收这个返回值。 libioP.h 的定义:_IO_list_all 全局变量 #incl

selph 发布于 2024-03-02

[libc 2.35 源码学习] IO_FILE 篇 - fclose

简介&前言 这是IO_FILE篇的第四个函数分析:fclose,文件流的关闭操作,一览文件流的关闭流程:先刷新写缓冲区,再断链,关闭文件描述符,释放文件结构体 到这里IO FILE常用的4个函数分析完了,下一篇开始将进入文件流利用相关的内容 源码分析 _IO_new_fclose 位于:libio/

selph 发布于 2024-03-01