type
status
date
slug
summary
tags
category
icon
password
一、APK下载
Crakeme01:Crakeme01.apk
二、jadx分析java代码
根据AndroidManifest.xml找到程序入口
.png?table=block&id=9645c34d-1c15-4332-a3e1-25ca6e60a8d1&t=9645c34d-1c15-4332-a3e1-25ca6e60a8d1&width=1042&cache=v2)
第一眼看到的System.loadLibrary(),就知道有NDK开发SO了,首先判断输入是否是空,非空的话调用 NI.greywolf(this, this.editText.getText().toString());,而greywolf是
.png?table=block&id=cdd07c5f-b885-4783-b142-9d9dbed0308f&t=cdd07c5f-b885-4783-b142-9d9dbed0308f&width=1042&cache=v2)
.png?table=block&id=39d02599-2cb4-41c1-b957-2c93022fbfd4&t=39d02599-2cb4-41c1-b957-2c93022fbfd4&width=1042&cache=v2)
三、IDA静态分析
上来一看,发现没有java_开头,敲定是动态注册,直接看伪代码。
.png?table=block&id=db4ba6e3-fc78-401c-af16-3cccd9882388&t=db4ba6e3-fc78-401c-af16-3cccd9882388&width=1042&cache=v2)
跟进去AD()看下,发现里面全是各种反调试,动态调试的时候直接nop掉就ok。
.png?table=block&id=9f80dbd7-3d36-43d6-addb-7ebb68802669&t=9f80dbd7-3d36-43d6-addb-7ebb68802669&width=1042&cache=v2)
四、IDA动态调试
在JNI_OnLoad开头下断点,nop掉反调试的部分。
.png?table=block&id=1a173214-5ba9-49e0-a934-1f770bd3d137&t=1a173214-5ba9-49e0-a934-1f770bd3d137&width=1042&cache=v2)
JNI_OnLoad有三个函数,找最后一个的函数就是RegisterNatives,然后找RegisterNatives中的第三个参数,里面包含着对应关系。
.png?table=block&id=89ae9511-eb0b-4755-9b45-cd15b5839702&t=89ae9511-eb0b-4755-9b45-cd15b5839702&width=1042&cache=v2)
.png?table=block&id=e825a93b-29d0-4fef-b1e2-2a3d2018f3b6&t=e825a93b-29d0-4fef-b1e2-2a3d2018f3b6&width=1042&cache=v2)
跟进去按C,找到个bc函数。
.png?table=block&id=9b9ee9ba-277f-4c1d-abe8-46d78cdefc9a&t=9b9ee9ba-277f-4c1d-abe8-46d78cdefc9a&width=1042&cache=v2)
在静态分析中找到bc,分析逻辑,dh主要做的是调试检测,如果没有被反调试,则return 1,否则kill 然后再return 0,ds这个函数猜测是加解密用的,flag没准就是v4的返回值,动态调试试一下。
.png?table=block&id=dad1a6d0-4d4e-4aa2-a5d1-35b16a48b4c0&t=dad1a6d0-4d4e-4aa2-a5d1-35b16a48b4c0&width=1042&cache=v2)
ds函数打断点,对照静态调试的伪代码,找到指令,BLX后的返回值推测是flag,查看R0寄存器。
.png?table=block&id=1a87481e-adde-4fda-80ac-e4814fec3b7d&t=1a87481e-adde-4fda-80ac-e4814fec3b7d&width=1042&cache=v2)
找到flag=hello5.1,还不算难.jpg。
.png?table=block&id=3fa8b6f8-10c0-45e7-929d-3b80f7093ff5&t=3fa8b6f8-10c0-45e7-929d-3b80f7093ff5&width=1042&cache=v2)
- 作者:404False
- 链接:https://blog.404nofoundx.top//article/565c7fa9-9c47-4ff1-88fa-fe3f46d3cb6e
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。