Java教程

BUUCTF/RE/Java逆向解密

本文主要是介绍BUUCTF/RE/Java逆向解密,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第一次做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

这篇关于BUUCTF/RE/Java逆向解密的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!