Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

找到一个学习pwn的项目http://exploit.education ,决定让我临时抱佛脚学的pwn走向正轨,试试开个笔记系列(每次pwntools脚本都忘记怎么写),希望不要半路弃坑。定个小目标,至少把Phoenix系列做完吧。 环境配置 首先在more-downloads里下载phoenix的虚拟机系统镜像,根据你的架构选择。这就是靶机。在启动之前,我们需要安装qemu-syste...

当你在main中找不到程序逻辑的时候,如何考虑? 有没有注册异常处理程序。还有像__cxa_atexit 这样退出时执行的函数。 __lib_start_main的参数中有用于初始化的函数。顺便贴一下它的定义: int __libc_start_main( int (*main) (int, char * *, char * *), int argc, char * * u...

(附件在这里https://github.com/R0IS/RCTF2021/blob/main/Recv/Harmony/Harmony/liteos) 随机到了Hi!Harmony!这道,在xctf上。为什么要强调在xctf上呢?因为xctf上没有附件。只有题目描述里的一句: Hello, hackers! Have you ever heard of pangu, the creat...

题目:xctf MFC程序,使用xspy查看窗口信息。 check按钮的id为03e9,同时窗口存在OnCommand: notifycode=0000 id=03e9,func= 0x00C72420(Junk_Instruction.exe+ 0x002420 )函数。 进入该函数(sub_402420),可以看到有一个条件判断:if ( (unsigned __int8)sub_402...

64位PE无壳。打开main函数。 题目来源:xctf 首先判断输入长度是不是31位。不是的话就卡死。 scanf("%s",input); lVar5 = -1; do { str_len = lVar5 + 1; lVar4 = lVar5 + 1; lVar5 = str_len; } while (input[lVar4] != '\0'); if (str...

let rnd x y = let r = Random() let mutable res = 0I let mutable first = true while not first && not (res >= x && res <= y) do first <- false ...

看从零到一第一遍有没懂的地方记录一下 长篇大论: 现代操作系统往往有比较完善的MPU机制,可以按照内存页的粒度设置进程的内存使用权限。内存权限分别有可读(R)、可写(W)和可执行(X)。一旦CPU执行了没有可执行权限的内存上的代码,操作系统会立即终止程序。 在默认情况下,基于漏洞缓解的规则,程序中不会存在同时具有可写和可执行权限的内存,所以无法通过修改程序的代码段或者数据段来执行任意代码。...

https://x.zhufn.fun 以后都在这里更新了 Hexo太麻烦了,每次又要打开gitlab,然后手打文章信息的表格。 发现有个用next做的服务端渲染的把Notion页面当作博客的项目,拿过来用了。https://github.com/transitive-bullshit/nextjs-notion-starter-kit

你们好呀 printfn "hello world!"

Level 1跳过 静态分析发现假装是Level 2的那个函数里面什么都没有。动态调试也是到那直接退出了 然后查阅wp发现是使用AddVectoredExceptionHandler注册了异常处理,然后利用int 3触发异常。如果要调试,需要修改调试器设置,让被调试程序处理异常。 暂时不需要调试,观察注册的异常处理函数,可以发现是和一段字节异或2,但是那段内存是运行时生成的,调试一下。注意...