我佛了,打开app内容是需要加固so文件,但是这难度系数也太大了吧
最后看看别的师傅的博客,发现是

APK在执行过程中使用了一个文件作为输入,请问该文件的名称是什么?(不需要路径)

哦不需要手动加固so文件_(:з)∠)_

工具:

  1. dex2jar;
  2. apktool;
  3. signapk;

收获:

  1. 代码注入实战了一波;

dex2jar操作一通之后,定位关键代码
p1

这个是JNI相关的代码,可以看到得到数字和字符结果,需要字符串输入,这个字符串就是输入文件

在MainActivity中找到这个
p2

意思时得把这个str给输出了,这时就需要Log走一波了。

这时就需要Smali上场了,apktool将apk逆了

$ apktool d -o ctf xxx.apk

打开smali/com/sotest/alibaba,将MainActivity.smali

直接搜索readAssetFile,看到getFileDir和两个append外加一个toString之后,结果在寄存器v0里,可以用非虫书里的代码注入操作,将v0的内容通过log输出。

String str = getFilesDir() + "/inputfile";
Log.v("SN", str);

参数1:Tag,被用来识别Log的消息源
参数2:msg,输出的内容

对应的Smali

const-string v3, "SN"
invoke-static {v3, v0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I

在adb中执行

adb logcat -s SN;v

打开app之后就得到路径了
p3

终。