BUUCTF/RE/Java逆向解密

第一次做JAVA的逆向题,差点直接把class文件拖进IDA了233~

百度了一下java逆向,发现它只需要反编译即可:Java反编译工具-JD-GUI-简单好用 - 简书 (jianshu.com)

下载了工具JD-GUI,直接双击然后拖入文件即可食用(划掉)使用

BUUCTF/RE/Java逆向解密

完全不会java!不过勉强看得懂英文(不是!

先看开头结尾,输入一个str,结尾比对一下resultlist和keylist,keylist在前文已经给出,result显然是str经过变换生成的。

再看内容。第一个函数结尾的Encrypt应该是把stringarr丢入了下面的函数中经历变换。这个被丢入的stringarr在新函数里被称作resultlist。

 然后对resultlist逐个字符进行循环,定义一个变量result记录加法和异或运算的结果。加法运算和异或运算的运算规律非常好,因为前者在逆向的时候直接改成减号,后者不用变。

下一行实在读不懂啦,查一下:BUUCTF/RE/Java逆向解密

理解了,是把新构造的result元素放到list里面

 括号里面的valueof:BUUCTF/RE/Java逆向解密

 

 

虽然有点难以理解,但大概意思是类型转换,转成了integer类型,虽然不懂具体意义,但应该也不用懂。

下一小块内容大概就是把int key[]放到了list里。虽然我也不太懂list是啥(倒下

总之读完了!可以写脚本啦qwq!

我暂时还只会写c的脚本qaqqq希望早日学会python啦qaq

BUUCTF/RE/Java逆向解密

 

 运行出的结果拿到16进制转字符串在线工具解码一下,flag就出来啦!一句内容平平无奇的flag,没意思,不放了qwq

上一篇:BUUCTF RSA


下一篇:buuctf初学者学习记录--web第五题