0%

[MoeCTF 2022]chicken_soup JasmineAura的WriteUp

2024-01-27 08:06By
Auraa
花指令脱壳C自定义逻辑REVERSE

Problem: [MoeCTF 2022]chicken_soup

[[toc]]

思路

花指令+简单位运算
DIE看一眼,无壳,32位,直接丢IDA32里面。
F5看一眼,发现看不懂,原来有两个花指令。
NSSIMAGE

两个花指令处理方法一样,用十六进制显示,然后把0E9h全NOP掉,然后重新对text反编译。

再次F5,看到了正常的伪代码。
NSSIMAGE

其中sub_401110就是个strcmp,然后前面对读入的v4做了两次加密,直接倒推即可。
NSSIMAGE
把unk_403000这一大堆提出来,这是加密两次以后的结果。

EXP

这里使用C++

#include<bits/stdc++.h> using namespace std; int res[] = { 205, 77, 140, 125, 173, 30, 190, 74, 138, 125, 188, 124, 252, 46, 42, 121, 157, 106, 26, 204, 61, 74, 248, 60, 121, 105, 57, 217, 221, 157, 169, 105, 76, 140, 221, 89, 233, 215 }; //length=38 int arr[40]; int main() { for(int i=0;i<38;i++)arr[i]=(res[i]*16)|(res[i]>>4); for(int i=37;i>=0;i--)arr[i]=arr[i]-arr[i+1]; for(int i=0;i<38;i++)cout<<(char)arr[i]; return 0; }

运行以后得到flag。
NSSIMAGE

总结

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论