Eleven's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链

windows 反调试

API 反调试 IsDebuggerPresent 一个很简单的函数,用于检测当前进程是否被调试 函数原型 1BOOL IsDebuggerPresent(); 如果当前进程运行在调试器的上下文中,返回值为非零值,否则返回值为零 工作原理 每个 Windows 进程中都有一个叫进程环境块(Process Environment Block, PEB)的内核数据结构,PEB 中包含了很多关于
2025-09-04
Notes
#Reverse #Anti-debugging

NPC²CTF 2025 Reverse 方向复现

Week1 esrever 主逻辑 ida 中点击发现在 main 和 start 之间无限跳转,搜索字符串再 x 交叉引用到关键汇编,发现这部分汇编全部飘红,反编译失败 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616
2025-08-26
CTF
#Reverse

NSSCTF 2025 4th Reverse WP

checkit java 层 附件是 apk, java 层没什么东西 MainActivity 如下,关键在于调用了本地方法 checkInput 123456789101112131415161718192021222324252627282930313233package com.test.ezre;import android.os.Bundle;import android.view.V
2025-08-25
CTF
#Reverse

LilCTF2025 WP

Reverse obfusheader.h 控制流混淆,题目中有给提示跟踪数据流 附件用 ida 打开之后有花指令和很多未识别成代码的数据,花指令的结构都是类似的一种 在标签处(loc_14000C392)按 U,得到 12345.text:000000014000C390 jz short near ptr unk_14000C393.text:000
2025-08-17
CTF
#Reverse #Misc

llvm 浅探

写在前面 这篇文章的前半部分包括写的环境搭建都是基于 LLVM 源码的构建方式,重点在于帮助了解 llvm 的结构,如果目的只是编写 Pass 的话,直接跳到 自己编写 LLVM Pass 部分即可 LLVM 环境搭建 由于我的 Ubuntu 版本不够,无法直接 apt install llvm-20,所以就去 https://github.com/llvm/llvm-project.git 里面
2025-08-01
Notes
#llvm

cuda 逆向

写在前面 CUDA (Compute Unified Device Architecture) 是由 NVIDIA 开发的一种并行计算平台和编程模型;它允许软件开发者和研究人员利用 NVIDIA GPU 的强大并行处理能力来加速通用计算任务,而不仅仅局限于图形渲染 cuda 逆向本身不难,一般是使用 cuobjump 来获得 ptx 汇编 ,根据汇编理出加密逻辑最后进行解密即可 PTX 基础知识
2025-07-21
CTF
#Reverse #cuda

XYCTF2025 Reverse 方向复现

CrackMe ida 打开看到 WinMain 函数,同时注意到有一个 TlsCallback_0 函数 123456VOID NTAPI TlsCallback(PVOID DllHandle, DWORD dwReason, PVOID Reserved) { //DllHandle:对于 exe 是进程句柄,对于 dll 是模块句柄;dwReason:回调原因;Reserved:
2025-07-20
CTF
#Reverse

pyd 逆向

what’s pyd .pyd 文件本质上是一个 Windows 的 DLL 文件, 通过 C/C++ 编译器(如 MSVC)把 C/C++ 代码编译成二进制形式,实现了 Python 扩展模块的接口,可以通过 import xxx 的方式像普通的 .py 文件那样导入使用 preparation 先在 windows 下自己编译一个带有调试信息的 pyd 文件,主要用于后续 bindiff 比较
2025-07-15
CTF
#Reverse #Cython

安卓基础知识笔记

安卓四大组件 Activity(活动)、Service(服务)、BroadcastReceiver(广播接收者)、ContentProvider(内容提供者) Binder 工作原理 通过 Binder,Android 可以跨越不同进程和内存空间进行数据交换和调用远程方法 当进程 A 想要获取进程 B 中某个对象的方法时,它先通过 Binder 获取 B 的接口对象,这个接口对象其实就是 B 中服
2025-07-02
Notes
#Android

向 VM 的步步靠近--部分 vm 赛题复现

[GWCTF 2019]babyvm 修结构体 ida 中查看 main 函数,点进 sub_CD1 里 前4个字段:写入4个32位整数(DWORD),偏移分别为0, 4, 8, 12,这是在设置寄存器 1234uint32_t eax; // 偏移 0uint32_t ebx; // 偏移 4 (初始值为18)uint32_t ecx; // 偏移 8uint32_t edx
2025-05-24
CTF
#Reverse
1234

搜索

Hexo Fluid