zoukankan      html  css  js  c++  java
  • CTF

     下载android-backup-tookit:https://sourceforge.net/projects/adbextractor/files/latest/download

    执行下面的命令转换ab文件为jar文件:

    java -jar abe.jar unpack app3.ab app3.jar

    jar包解压后base.apk,Demo.db,Encryto.db三个文件,盲猜应该与数据库,解密相关。

    apk拖到模拟器安装和运行:

      

    先上反编译,大概翻了一下,貌似在往数据库里写东西

    下载sqlitestudio打开数据库文件,hmm......打不开>_<

    又回去翻代码,没看出啥,网上提示dex2jar反编译出来的代码有问题。好吧,拖到idea里面去看下

    dex2jar里面的class b长这样:

    idea里面的class b长这样

    哈哈哈,生活果然处处都是坑,是时候换个大腿了~

    class b里面有两个加密函数,一个md5,一个sha-1。再回去MainActivity看下,关键代码就是这几句:

    com.example.yaphetshan.tencentwelcome.a.a var2 = new com.example.yaphetshan.tencentwelcome.a.a();
    String var3 = var2.a(var1.getAsString("name"), var1.getAsString("password"));
    String var4 = var2.b(var3, var1.getAsString("password"));
    String var5 = var2.a(var3 + var4);
    this.a = this.b.getWritableDatabase(var5.substring(0, 7));

    加密的步骤是这样纸的:

    1. 调用函数a,对输入的name和password个取前4位

     执行结果为:Stra1234

    2. 对上一步的结果进行mad加密

    自己把class b copy到idea,把参数传进去直接执行就好。表问我怎么copy类、传参和执行,以我并不精通的Java水平说不清楚!

    加密后的结果:44e2e4457d4e252ca5b9fe9d20b3fea5

    3. 再调一次函数a

    执行也就是对Stra123444e2e4457d4e252ca5b9fe9d20b3fea5yaphetshan再进行一次sha-1加密

    加密结果:ae56f99638285eb0743d8bf76d2b0c80e5cbb096

    4. 最后取上一步加密结果的前七位

    最后结果:ae56f99

    5.解密完毕

    然鹅并木有完结撒花2333,这个解密结果多半是数据库的密码,拿来试试先。

    先用sqlitestudio输入密码,木有成功。。。搜了一下,解密是对的,那可能是工具问题,好吧,坑踩完一个又一个,换个工具(DB Browser for SQLite)接着踩~

    就一条数据,base64解密拿到flag:

    总结:

    1.ab后缀的文件是安卓的备份文件,可转换成jar文件

    2.工具的多样化,多准备几种工具,这个不行上那个,不要在一个工具上死磕 

  • 相关阅读:
    生日悖论
    定时执行自动化脚本-(一)导入保存jmeter参数至文件的jar包
    Jenkins+Gradle+Docker打docker镜像包上传至s3
    Jenkins与Git持续集成&&Linux上远程部署Java项目
    Jenkins+Gradle+Sonar进行Java项目代码分析
    创建Jenkins构建触发器,代码提交至gitLab即自动触发构建
    centos7安装docker
    Jenkins+docker自动部署
    通过堡垒机连接内网服务器
    idea配置git,查看git代码&拉取git项目至本地
  • 原文地址:https://www.cnblogs.com/sallyzhang/p/14849340.html
Copyright © 2011-2022 走看看