美文网首页
jarvisoj-FindPass

jarvisoj-FindPass

作者: 2mpossible | 来源:发表于2017-10-24 00:55 被阅读0次

    前几天做这道题的时候学到了安卓逆向的一波操作,所以在此记录一下,首先我们需要Android studio + smailidea + apktool box + jeb四样东西,smailidea是Android studio的一个插件,能够对smail文件操作从而动态调试apk,可以从https://bitbucket.org/JesusFreke/smali/downloads/下载

    首先我们拿到apk,第一时间是打开模拟器安装,大概知道apk有什么功能(这里我用的逍遥安卓模拟器),

    大概就是输入key然后验证key的过程,然后我们在正式开始动态调试需要配置我们的环境

    1.

    到虚拟机的目录下找一个adb.exe的程序,

    命令行模式下输入

    adb.exe devices
    

    就会返回你模拟器所在的端口

    2.

    打开Android studio然后安装smalidea-0.05插件,点击File->Settings->plugins->instal plugins from disk,选择下载的zip包就行,不要解压。安装完成后,AS提示重启生效,重启即可

    3

    然后我们进入到Android sdk的目录==>platform tools,可以看到又有一个adb.exe

    进入命令行,输入
    adb.exe connect 127.0.0.1:21503 (跟第二步中获取到的模拟器的端口)

    可以看到sdk现在已经连接到模拟器的端口了

    4

    然后我们需要获取到app的包名和Activity名,这里我们可以利用Android sdk/build-tools里的aapt.exe工具
    进入到Android sdk/build-tools目录,启动命令行
    aapt dump badging FindPass_200.apk(<apk文件路径>)

    这里的apk包名和Activity名分别是 com.example.findpass 和 com.example.findpass.MainActivity

    5

    然后我们反编译我们的apk文件,这里用到的是apktool box工具,

    用Android studio导入反编译后的文件,然后

    设置为可以调试的

    接下来再配置我们的debug键

    6

    然后我们再Android studio的命令行下打命令

    adb shell am start -D -n apk包名/.MainActivity
    

    成功以后,模拟器会出现这样,等待我们debug

    然后我们要看模拟器中启动app的进程号

    adb shell ps
    

    可以看到我们app的进程号是3269

    接下来要让我们Android studio设置的remote端口连接到app的这个端口

    adb forward tcp:8700 jdwp:3269
    

    6#接下来,我们随便设置一个断点,然后debug程序

    在app下任意输入点确定

    这题我们单步步过慢慢调试

    最后发现flag

    相关文章

      网友评论

          本文标题:jarvisoj-FindPass

          本文链接:https://www.haomeiwen.com/subject/uoizuxtx.html