GWCTF-2019-re3
看题目
PE查壳
无壳64位的linux程序
用IDA打开
找到main函数
接受一个 32位的 字符串
存在一个mprotect 函数 紧接着一个大循环 猜测是加密后解密
查看汇编窗口 果然如此
因为是Linux程序 本人暂时不知道如何利用动态调试去“去除“这个函数的”壳“
去壳
只能利用IDC脚本静态”去壳“
shift + F2 就可以调出脚本编辑器 输入脚本后点击Run 即可
1 | #include <idc.idc> |
仔细观看这些函数 都是一些比较复杂的 用findcrypt 插件(需要自行下载)
sub_40207B函数
其中sub_401CF9是MD5加密函数
a1是函数导入的参数 我们盯着 a1看
a1只和V2产生联系
按理说:只要将base64的码表 MD5加密俩次就可以获得 a1的值了 但是事实并非如此 其中的原因 本人暂时还不知 只能利用动调得到unk_603170
1 | CB8D493521B47A4CC1AE7E62229266CE |
sub_40221A函数
由findcrypt插件可知此函数中存在AES加密
byte_6030A0中存放的就是A1最后AES加密出的密文
1 | BC0AADC0147C5ECCE0B140BC9C51D52B46B2B9434DE5324BAD7FB4B39CDB4B5B |
其中unk_603170就是我们AES中的密钥
写脚本
1 | from Crypto.Cipher import AES |
flag{924a9ab2163d390410d0a1f670}
- 本文标题:GWCTF-2019-re3
- 本文作者:萧禾财
- 创建时间:2022-07-18 18:02:08
- 本文链接:https://ipartmentxhc.github.io/2022/07/18/GWCTF-2019-re3/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!