第一次做JAVA的逆向题,差点直接把class文件拖进IDA了233~
百度了一下java逆向,发现它只需要反编译即可:Java反编译工具-JD-GUI-简单好用 - 简书 (jianshu.com)
下载了工具JD-GUI,直接双击然后拖入文件即可食用(划掉)使用
完全不会java!不过勉强看得懂英文(不是!
先看开头结尾,输入一个str,结尾比对一下resultlist和keylist,keylist在前文已经给出,result显然是str经过变换生成的。
再看内容。第一个函数结尾的Encrypt应该是把stringarr丢入了下面的函数中经历变换。这个被丢入的stringarr在新函数里被称作resultlist。
然后对resultlist逐个字符进行循环,定义一个变量result记录加法和异或运算的结果。加法运算和异或运算的运算规律非常好,因为前者在逆向的时候直接改成减号,后者不用变。
下一行实在读不懂啦,查一下:
理解了,是把新构造的result元素放到list里面
括号里面的valueof:
虽然有点难以理解,但大概意思是类型转换,转成了integer类型,虽然不懂具体意义,但应该也不用懂。
下一小块内容大概就是把int key[]放到了list里。虽然我也不太懂list是啥(倒下
总之读完了!可以写脚本啦qwq!
我暂时还只会写c的脚本qaqqq希望早日学会python啦qaq
运行出的结果拿到16进制转字符串在线工具解码一下,flag就出来啦!一句内容平平无奇的flag,没意思,不放了qwq