这两道题是安卓逆向的题目~
第一次接触安卓逆向的题目~
工具下载: https://down.52pojie.cn/Tools/
Helloword
“apk APK是Android Package的缩写,即Android安装包(anapk)。
测试文件:https://buuoj.cn/files/c8f1972d61784f14dc7f86eea83a791f/6176cfc5-d473-4453-a000-29e480ace634.apk?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoxOTd9.XYmSTQ.-7o2s6Vz649VEwuJOcpO2BE15Gw
我这里在模拟器中安装这个APK文件
对于APK文件的处理,通常是先将它反编译成smali的虚拟机可执行文件,再去对他进行处理(工具用的是APKIDE,自动拖进去就可以进行反编译)
得到:flag{7631a988259a00816deda84afb29430a}
findit
下载用APKIDE打开,(打开smoli找到主函数)发现两串奇怪的16进制数?
右键转ASCII也转不了~
直接扣下来(放word里面,变成不换行的)
,用python脚本编译,
第一串没有什么是个提示~说flag就在这里:
chr()函数的参数args在【0,256】,意思就是只能把【0,256】的数字转化为字符串
——》
chr()函数与str函数的区别:
- chr()函数是把一个小整数作为参数,并返回对应于ASCII单字符的字符串
- str()函数是把任何整数作为参数,返回一个该整数的文本形式的字符串
同理把第二串十六进制数转成对应于ASCII单字符的字符串:
pvkq{m164675262033l4m49lnp7p9mnk28k75}——》flag{m164675262033l4m49lnp7p9mnk28k75}发现没有提交成功!
p—>f : 相差10
v---->l
想到凯撒密码:
flag{c164675262033b4c49bdf7f9cda28a75}