题目来自: bugku—re—love
ida F5 看到 main 函数调用 main_0()
看到 sub_4110BF 处理后得结果和 Str2 进行比较, 吻合则说明 flag 正确
得在 .data 段找到 Str2
1 | e3nifIH9b_C@n@dH |
先解决位移
1 | v8 = j_strlen(Dest); |
就是把 Dest 数组里的的每一个字符位移 j
slove:
1 | fake_flag0 = '' |
现在进入 sub_4110BF 函数 再进入 sub_411AB0 (为了方便分析我把部分变量重命名了)
1 | void *__cdecl sub_411AB0(char *ipt_str, unsigned int len, int *out_str) |
在 .rdata 段 拿到 aAbcdefghijklmn 数组
1 | .rdata:00417B30 aAbcdefghijklmn db 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' |
看得出来就是 base64
1 | import base64 |