LitCTF2024逆向wp
litctf24(都是耻辱)
RUNMRE
无壳,拿查看shift+F12
第一行是base64加密后的字符串
第二行是魔改后的base表
==这是原表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/==
ezpython(与三个python的环境默认缠斗一上午)
python打包成的exe我们要用pyinstxtractor.py来进行解包
解完包我们将ezpy.pyc扔进在线网站中反编译成.py
(反编译网站https://www.lddgo.net/string/pyc-compile-decompile)
1 | #!/usr/bin/env python |
然后我们去解包后产生的文件夹的PYZ-00.pyz_extracted文件夹找到Litctfbase64.pyc
同上诉步骤进行反编译成.py
1 | # Visit https://www.lddgo.net/string/pyc-compile-decompile for more information |
获得了base64的魔改表
hello_upx(你是真的逆天)
既然是upx就进行脱壳,但是会有报错提示被hacked
用010打开乍看没有问题,实际上出题人吧**==UPX==替换成了小写的upx**
于是我们将upx改正为UPX然后再脱壳拖入ida中查看main函数
v4和v5共同组成一个小端序
当v4[i]=v6[i]-i时输出good
所以脚本为
1 | str =[0x4C,0x68,0x72,0x40,0x50,0x41,0x75,0x70,0x2B,0x63,0x59,0x25,0x61,0x58,0x51,0x65,0x20,0x4E,0x5A,0x1E,0x60,0x4E,0x5E,0x4F,0x65] |
ezRC4
直接动调会闪退,main0有个反调试程序我们需要在这里打个断点
然后在上面调成这样进行单步调试(f7)
进入调试后在进到这一步时我们需要将ZF的值改成1然后进入到真模块否则就会自动退出
f7单步进入
到这里时发现我们之前在静态函数里发现的key
第二个块是对key进行解密
解密后的key为
然后根据前面静态的main函数中的buf1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哥布林的❤秘密❤洞穴!