first time meet llvm

first time meet llvm NOTE: PLEASE USE SSD!!!!! NOTE: PLEASE USE SSD!!!!! NOTE: PLEASE USE SSD!!!!! Before start: To build llvm, we use: Windows 10 visual studio 2019 a more than 200GB free space SSD And MSVC uses system code Read more…

cmake vcpkg 使用

这几天在想看一些开源项目,如果能用 visual studio 来阅读的话,那就会很优雅。现在的项目很多都已经使用 cmake 作为构建工具,那这里我们要编译的项目是 Triton。 傻逼 c++ 包管理 就是一堆屎 总会出现莫名的 bug 请放弃使用 珍爱生命 vcpkg vcpkg 使用起来非常方便 下载、编译 git clone https://github.com/microsoft/vcpkg .\vcpkg\bootstrap-vcpkg.bat .\vcpkg\vcpkg integrate install 之后安装我们需要的依赖项 .\vcpkg.exe install z3:x64-windows .\vcpkg.exe install capstone:x64-windows x64-windows 指的是 vcpkg 的 triplet,这里大概可以理解成平台 vcpkg 支持的平台如下 Read more…

有趣的侧信道攻击

题目应该是0CTF的baby kernel,关键函数是baby_ioctl 这个函数将输入字符的每一个char与flag对比,很容易发现一点, 如果当前字符与flag不相等,就会直接返回 如果当前字符与flag相等,判断下一个字符 我们可以得出:如果输入char正确,消耗的时间更长。(因为会继续判断下一个字符是否正确) 由于busybox编译是时候选择了静态编译,而如果我们在编译程序的时候加上-static 会导致编译出来的程序太大(接近1M),不方便我们上传到服务器。所以下方进行修改。使用gcc -O2出来的程序只有2kb嘻嘻嘻。 gcc poc.c -o poc -O2 -static -nostdlib This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

windows 句柄表

环境 windows10 _eprocess+0x418 _HANDLE_TABLE _HANDLE_TABLE .TableCode & 7 表示是几级句柄表,每一级的大小是PAGE_SIZE,除最后一级外其他都是指向下一级的指针。 找到HANDLE_TABLE_ENTRY typedef struct _HANDLE_TABLE_ENTRY { ULONG64 Unlocked : 1; ULONG64 RefCnt : 16; ULONG64 Attributes : 3; ULONG64 ObjectPointerBits : 44; ULONG64 GrantedAccessBits : 25; ULONG64 NoRightsUpgrade : 1; ULONG64 Spare1 Read more…