陕西省赛 逆向wp
First Post:
Last Update:
Last Update:
比赛(3/4)
我的upx -d怎么坏了:
魔改upx壳,先手脱壳,dump出来,可以看到就是一个迷宫:
从S走到#
Babypython
字节码,逻辑挺多的,但是对输入的加密不多,逆着来看,程序会输出output:=1nb0A3b7AUQwB3b84mQ/E0MvJUb+EXbx5TQwF3bt52bAZncsd9c,根据字节码,最后输出时是先base64加密,再逆序,再替换了三个字符,字节码翻译成伪代码如图:
那么再看output是如何生成的,继续手搓字节码,得到伪代码:
只有两部分对output有作用,其他不用管,大概逻辑就是先将flag逐位异或8,再+3,存到了output里。那么先求出base后的output:qglrv@onmlqpA>qmq>mBo3A?Bn<lppA@;lp4nx
Exp
Flag:flag{5dcbafe63fbf3b7d8647c1aee650ae9c}
BadCoffee
是一道加了混淆后的js代码,混淆主要就是在数字和字符串上,逻辑感觉上并无影响,虽然关键逻辑就一点点。
一步一步手动解混淆,把表达式都求出来,是两个42个数字的数组,再将一些不好看的字符串重命名一下。再看逻辑,如图:
Xxx函数就是传入两个数进行异或。大概就是将input逐位异或num_42数组,再倒着异或一遍num_42数组,得到了最后的密文,在最后有对密文的比较,如图:
所以解密exp:
Flag:flag{I_c0uld_neu3r_undeRstand_jvaVs3rIpt!}