Adworld Re Writeups

Reversing-x64Elf-100
下载附件得到.re
文件.
先用DIE看看是什么文件:
然后再扔进IDA:
重点是这个sub_4006FD
函数:
根本不需要分析, 直接打印*(char *)(i + a1)
就行.
exp:
|
Flag: Code_Talkers
666
解压附件得到666
文件.
DIE:
IDA:
- main函数:
- encode函数:
key
=18
,enFlag
=izwhroz""w"v.K".Ni
encode
是线性的, 而且只涉及简单的加减和异或, 直接逆就行了.
exp:
|
Flag: unctf{b66_6b6_66b}
easyRE1
解压附件得到easy-32
和easy-64
.
两个文件扔到IDA
里是几乎一样的:
直接提交db2f62a36a018bce28e46d976e3f9864
, 错误.
对db2f62a36a018bce28e46d976e3f9864
进行解密无果, 直接搜这个字符串才知道答案要包上flag{}
…
显然这是个签到题.
Flag: flag{db2f62a36a018bce28e46d976e3f9864}
lucknum
解压附件得到lucknum
文件.
DIE:
IDA:
也是一道搞笑签到题.
Flag: flag{c0ngr@tul@ti0n_f0r_luck_numb3r}
reverse_re3
解压附件得到main2
文件.
DIE:
IDA:
看到positive sp value has been detected.
有点慌, 先切到main函数看看:
重点是这个sub_940
函数:
__int64 sub_940() |
可以看出, 这应该是一个走迷宫程序, 再来看看sub_86C
, sub_E23
, sub_C5A
, sub_A92
, sub_FEC
:
unsigned __int64 sub_86C() |
__int64 sub_E23() |
__int64 sub_C5A() |
__int64 sub_A92() |
__int64 sub_FEC() |
合理猜测dword_202AB4
是横坐标, dword_202AB8
是纵坐标, dword_202020
是地图, dword_202AB0
目前还不知道是啥.
看看dword_202020
:
选中这个区段的数据, 按快捷键shift + E
即可导出数据. 注意要选择initialized C variables
: DWORD
是双节, 相当于unsigned long
.
dword_202020 (25行27列)
_DWORD dword_202020[675] = |
通过坐标的上下限, 很容易得知地图的大小是 dword_202020
的大小是
上面这几个函数都能看到类似dword_202020[225 * dword_202AB0 + 15 * i + j]
的语句, 可以大胆猜测: dword_202020
其实是保存了dword_202AB0
表示当前是第几个地图.
sub_940
的循环终止条件: if(dword_202AB0 == 2) break; ++dword_202AB0;
证实了这个猜测.
dword_202020 (3 * 15 * 15)
_DWORD dword_202020[3][15][15] = |
显然, 3
代表起点, 4
代表终点. 这里可以直接走, 但我还是写了个脚本来输出路线.
反正不是比赛, 怎样优雅就怎样来.
exp:
|
flag格式在sub_940
的最后面: flag{md5(your input)}
.
Flag: flag{aeea66fcac7fa80ed8f79f38ad5bb953}
1000Click
解压附件得到1000Click.exe
.
DIE:
似乎加壳了. 用IDA打开, 发现有
果断放弃.
先用DIE直接查字符串:
一堆假flag. 还是老老实实运行程序吧.
看样子, 只需要点击Click
按钮
DBC或DC很快就点到
当然, 也可以写一个AutoClicker.
|
上述代码可能需要以管理员身份运行.
点击
弹窗里的flag无法直接复制, 别傻呵呵地去辨认l
和I
, 直接在DIE
里搜.
Flag: flag{TIBntXVbdZ4Z9VRtoOQ2wRlvDNIjQ8Ra}
crypt
解压附件得到 crypt.exe
.
没有壳, 直接扔进 IDA 反编译.
int __fastcall main(int argc, const char **argv, const char **envp) |
__int64 __fastcall sub_140001120(_DWORD *a1, __int64 a2, int a3) |
_DWORD *__fastcall sub_140001240(_DWORD *a1, __int64 a2, int a3) |
分析了一下, 这是一个 RC4
加密.
Wiki: RC4
exp:
|
Flag: flag{nice_to_meet_you}
- 标题: Adworld Re Writeups
- 作者: Coast23
- 创建于 : 2025-01-26 16:37:08
- 更新于 : 2025-03-17 22:25:41
- 链接: https://coast23.github.io/2025/01/26/Adworld-Re-Writeups/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。