题目:https://ctf.bugku.com/challenges/detail/id/116.html
IDA打开无壳
1.SHIFT+F12打开string窗口
2.ALT+T查找flag

3.双击查看该字符串的内存地址
变量位于只读数据区(rdata)
![]()
4.按X键定位变量的交叉引用地址
F5查看伪代码(关键部分)

分析后是两步异或的过程
5.用C语言对数据处理得到flag
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp=fopen("flag","w");
int a[56]= {123,32,18,98,119,108,65,41,124,80,125,38,124,111,74,49,83,108,94,108,84,6,96,83,44,121,104,110,32,95,117,101,99,123,127,119,96,48

博客介绍了在CTF题目(https://ctf.bugku.com/challenges/detail/id/116.html )中获取flag的过程。使用IDA工具,无壳打开后,通过SHIFT+F12、ALT+T等操作定位变量,查看伪代码分析出是两步异或过程,最后用C语言处理数据得到flag。
最低0.47元/天 解锁文章
753

被折叠的 条评论
为什么被折叠?



