侧边栏壁纸
博主头像
Fup1p1 's Blog 博主等级

梦想是财富自由~

  • 累计撰写 38 篇文章
  • 累计创建 24 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

【Reverse】[FlareOn4]IgniteMe

Fup1p1
2022-05-25 / 0 评论 / 0 点赞 / 558 阅读 / 0 字 / 正在检测是否收录...

[FlareOn4]IgniteMe

恶灵的题目传送门

此题无需脱壳

查看主函数

QQ截图20220525201339
WriteFile 用法

BOOL WINAPI ReadFile(
  __in          HANDLE hFile,                   // 文件句柄
  __out         LPVOID lpBuffer,                // 接收数据用的 buffer
  __in          DWORD nNumberOfBytesToRead,     // 要读取的字节数
  __out         LPDWORD lpNumberOfBytesRead,    // 实际读取到的字节数
  __in          LPOVERLAPPED lpOverlapped       // OVERLAPPED 结构,一般设定为 NULL 
);

这里的writeFile其实就是输出字符串到屏幕上。

查看sub_4010F0()

QQ截图20220525202410
这个函数主要功能就是将ASCII码为10(\n)和13(\r)给剔除了。

关键函数sub_401050()

QQ截图20220525202455

进入函数sub_401000(),先尝试获得v4的值

QQ截图20220525203234

方法一 查看函数用法

嘿嘿嘿,这不打开我的汇编金手指。
QQ截图20220525203433

即将0x80070000向左循环移动4位,即× 24(相当于十六进制向左移动一位),得到0x00700008。
然后再右移一位得到0x00700004。还要注意到return(int16),即取十六进制的后两个字节。
故v4=0x0004

方法二 od调试

QQ截图20220525204240
od动态调试,显示ax=0x0004(最近学了一点汇编,也是能看懂简单的汇编指令了)

解密

403000数组已经告知

QQ截图20220525205347

简单的加密

QQ截图20220525205815

按照逻辑编写脚本

num=[13,38,73,69,42,23,120,68,43,108,93,94,69,18,47,23,43,68,111,110,86,9,95,69,71,115,38,10,13,19,23,72,66,1,64,77,12,2,105,0]
flag=""
v4=4
put=0
for i in range(39,-1,-1):
   put=v4^num[i]
   flag+=chr(put)
   v4=put
result=flag[::-1]
result='flag{'+result
result+='}'
print(result)

得到flag
QQ截图20220525205700

0

评论区