OnCreate就是执行p函数,创建一个监听d类的onclick事件。而p函数就是读取url.png[144:160]的数据
mainactivity的代码
1 | public class MainActivity extends q { |
再来看d类,判断是否正确,正确就输出flag。
if的第一个参数是this.a(句柄),第二个是调用只有一个参数的a类a函数,第三个则是v0(我们输入的字符串)
1 | class d implements View.OnClickListener { |
在看a类的三个3函数
第一个a函数只有一个参数,就是字符串v。就是图片[144:160]的数据
第二个a函数有三个参数,调用了有两个参数的a函数
第三个a函数有两个参数,arg4是v,arg5是输入的密码。调用c类的a函数和后面的做比较。如果相等就输出flag
1 | static String a(MainActivity arg1) { |
再来看c类,就是对之前从图片里提出来的字符串在进行加工。主要就是置换,两位为一个单位来置换。
1 | public class c { |
a类就是aes的加密
1 | public class a { |
1 | protected byte[] b(byte[] arg4) { |
python解密脚本
1 | from Crypto.Cipher import AES |
也可以自己尝试提出url.png中的内容
自己可以用在线aes解密,python2写脚本。base64 encode加密完后丢解密网站,修改填充和加上密码。
1 | import base64 |
程序逻辑:
mainactivity->p()->d->a->c->脚本
脚本逻辑:
取图片里的字符串->字符串置换->密文转hex->脚本closed
参考:
https://blog.csdn.net/Onlyone_1314/article/details/108836559