2020-10-30

逆向练习#9

BUUCTF-简单注册器

前言:本来想着,简单题目没必要写笔记了吧。但还是得写啊。还得补学C语言与python,毕竟难的东西一下写不出来。先不偷懒。

1.

本题是apk文件,需要apk逆向工具,我去吾爱论坛上下载了破解好的jeb3。解压即可用,非常方便。

2.

进入jeb,打开apk文件。可以直接发现关键函数在MainActivity层级中,再按下Tab可以实现类似IDA的伪代码功能。选中十六进制数按B键能够转换进制。

image-20201030174748004

虽然这是JAVA伪代码,但其实很直观。

3.

于是改写成python

1
2
3
4
5
6
7
8
9
10
11
flagtrue = "dd2940c04462b4dd7c450528835cca15"
x = [i for i in flagtrue]
x[2] = chr(ord(x[2]) + ord(x[3]) - 50)
x[4] = chr(ord(x[2]) + ord(x[5]) - 48)
x[30] = chr(ord(x[31]) + ord(x[9]) - 48)
x[14] = chr(ord(x[0x1b]) + ord(x[0x1c]) - 97)

for i in range(16):
x[i],x[31-i] = x[31-i],x[i]

print ("flag{"+ ''.join(x) + "}")

扒来的,完全能够看懂,但自己写不出来,这些语法很值得学习。

4.

得出flag:flag{59acc538825054c7de4b26440c0999dd} 搞定!