攻防世界WP-reverse-alexctf-2017-re2-cpp-is-awesome
2020-04-23 12:11
836 查看
废话不多说,无壳直接拖入IDA。
关键代码
for ( i = std::__cxx11::basic_string<char,std::char_traits<char>,std::allocator<char>>::begin(&v11); ; sub_400D7A(&i) ) { v13 = std::__cxx11::basic_string<char,std::char_traits<char>,std::allocator<char>>::end(&v11); if ( !sub_400D3D((__int64)&i, (__int64)&v13) ) break; v8 = *(unsigned __int8 *)sub_400D9A(&i); if ( (_BYTE)v8 != off_6020A0[dword_6020C0[v14]] ) sub_400B56((__int64)&i, (__int64)&v13, v8); ++v14; }
sub_400B56这个函数打印出来的结果是
Better luck next time,所以上面的判断
if ( (_BYTE)v8 != off_6020A0[dword_6020C0[v14]] )一定要成立,然后看
off_6020A0和
dword_6020C0的值。以
dword_6020C0为
index,在字符串里面找值,最终结果为
flag
python代码如下
str_key="L3t_ME_T3ll_Y0u_S0m3th1ng_1mp0rtant_A_{FL4G}_W0nt_b3_3X4ctly_th4t_345y_t0_c4ptur3_H0wev3r_1T_w1ll_b3_C00l_1F_Y0u_g0t_1t" key=[36, 0, 5, 54, 101, 7, 39, 38, 45, 1, 3, 0, 13, 86, 1, 3, 101, 3, 45, 22, 2, 21, 3, 101, 0, 41, 68, 68, 1, 68, 43] result = "" for i in range(len(key)): result += str_key[key[i]] print(result)
flag为
ALEXCTF{W3_L0v3_C_W1th_CL45535}
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 攻防世界-萌新入门- alexctf-2017 re2-cpp-is-awesome
- 攻防世界WP-reverse-school-ctf-winter-2015-simple-check-100
- 【CTF】攻防世界——mfw(web)
- [wp] 攻防世界 CISCN-2018-Final blgdel
- [wp] 攻防世界-i-got-id-200
- [wp] 攻防世界 Web_php_wrong_nginx_config
- xctf re2-cpp-is-awesome
- CTF攻防世界 WEB方向 新手练习区 题解
- 攻防世界reverse新手之re1
- 攻防世界逆向wp
- Web_python_template_injection攻防世界ctf web
- 1.pwn入门新手看完别人写的wp,然后自己写,攻防世界CGfsb格式化字符串漏洞
- [wp] 攻防世界 ics-02
- 攻防世界misc 新手练习区 高手进阶区 wp
- [wp]攻防世界-bug
- 攻防世界MISC高手进阶区What-is-this
- 攻防世界 MISC 高手进阶区 就在其中WP 解题思路
- [wp] 攻防世界 Web_php_include
- [wp] 攻防世界 baby_web
- 攻防世界MISC新手练习区this_is_flag