type
status
date
slug
summary
tags
category
icon
password
📝 REVERSE
Snake
python逆向

python3.8 直接选择在线pyc编译网站
很明显是RC4加密,只需要找到key就行,key.pyc在PYZ-00.pyz_extracted里面也拖到在线编译网站
exp
HardSignin

改特征值,UPX脱壳

TlsCallback_0

TlsCallback0是SMC自修改

TlsCallback_1

顺便教大家一下这个花指令怎么恢复的最好
首先先不要去掉jz 和 jnz
我们先在下面标红的call指令那里按d

然后在我光标的那里按c恢复

然后恢复成这样,之后再把 hlt指令上面的全部nop掉,jz上面的不用

然后我们就可以按p生成函数了
把base64的table表魔改了

TlsCallback_2

byte_4045B0,byte_4045A0这两个变量,后面会查到
idapython脚本
还原main函数


换表base64解密之后得到flag
flag{C0ngr@tulat1on!Y0u_Re_suCces3fu1Ly_Signln!}
BEDTEA



这个题里面没有反调试,但是有一个检测是否被调试
这是一个三元运算符

一开始我们并不知道这个作用是什么,那么我们就看一下哪里引用了它发现它在tea加密里面有被用到,经过调试可知明文为24个字节,已经三次tea加密里面的密钥都不相等

但是这个密钥生成的过程看着很繁琐,为了节约时间,我们要下断点得到密钥

每次断在这里,然后查看byte_408040的内存
这个其实就是算误差的但是程序运行和我们调试的时候误差是不一样的,在调试的时候我们走的是else,但是正常程序运行应该是走if那里,
然后我们回到一开始检测调试器那里,调试的时候那里的值是1,在里面改为3,然后就会生成不同的密钥exp
有关复现上的问题,欢迎您在底部评论区留言,一起交流~
- Author:5m10v3
- URL:https://5m10v3.top/article/16cc14aa-ef87-4823-8602-2e528323bb69
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts