欢迎来到天天文库
浏览记录
ID:38764558
大小:341.50 KB
页数:9页
时间:2019-06-19
《《2015移动安全挑战赛》题目》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、工具准备:apktool,dex2jar,jd-gui1、管理员身份运行CMD2、APK文件路径全英文安装APK到AVDAPK解压apk->dex准备工作:dex2jar官网http:code.google.com/p/dex2jar/,将下载的DEX2JAR压缩包解压,将解压后的文件夹添加到系统的PATH环境变量中,在命令符下输入一下命令:查看格式:使用RAR或ZIP等解压工具直接解压得到文件后,找到classes.dex文件1.用解压工具从apk包中取出classes.dex文件或者用命令(dex2jar.b
2、atclasses.dex)得到一个jar文件jar文件在目录下2.用jd-gui反编译工具将得到.jar文件反编译成.java文件重新打包:此APK还没有签名,还不能安装。签名:签名文件在目录下,名为:signed.apk安装测试:启动AndroidAVD或者链接手机电脑安装成功。.so文件用IDA分析,APK只引用了1个函数,JAVA开的反编译so库文件调试so必须可以。Debugger→Attach→Remote ArmLinux/Android debuggerAttach进程CTRL+S找so计算偏移找
3、地址,F2下断后就OK触发断点IDA6.6.SO反编译选择函数ARM代码,再按F4命令adblogcat//显示全部日志函数__android_log_print(ANDROID_LOG_INFO,LOG_TAG,title)第一个参数ANDROID_LOG_INFO(还有ANDROID_LOG_ERROR等),表示什么类型的输出,上面的函数相当于android的java代码的Log.i(LOG_TAG,title),第二个参数就是logcat里的tag,第三个就是打印的内容。过滤:先确定日志类型#define
4、KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT "<1>" /* action must be taken immediately */ #define KERN_CRIT "<2>" /* critical conditions */ #deinfe KERN_ERR "<3>" /* error conditions */ #de
5、infe KERN_WARNING "<4>" /* warning conditions */ #deinfe KERN_NOTICE "<5>" /* normal but significant condition */ #deinfe KERN_INFO "<6>" /* informational */ #deinfe KERN_DEBUG "<7>" /* debug-level messages
6、 */ 1、查看是否存在调试日志输出,如:_android_log_print,2、查看错误信息,分析使用十六进制编辑器修改二进制,例如:保存成功后,.so文件修改后,重新打包,签名后,安装错误:Logcat查看日志找到:方法一:利用adbshell进入系统,进入/data/app或者/data/data,删除跟你安装的apk同样的包名;按Ctrl+C退出系统,利用adbpull/data/system/packages.xml命令将packages.xml放到你PC机本地,然后找到你需要的包名,删除7、kage>到的一段数据。例如:保存packages.xml,然后adbpushpackages.xml/data/system将packages.xml文件送回设备中。然后再次adbinstall安装你的apk文件,看看是否success。如果还不能成功,还有一种可能性,就是你的安装包与之前设备上的安装包签名不一致,或者你的安装包根本就没有签名。这时候采用adbuninstall包名卸载之前的安装包,再次adbinstall安装你的apk文件。如果还不行,请查看logcat,进一步分析具体原因8、。方法二:要解决这个问题,你需要完全卸载预安装版本,然后使用adb工具重新安装它。下面告诉你该怎么做:一:首先需要启动模拟器二:start-> 运行 ->CMD三:进入andoridsdk下面的tools目录四:adbshell五:cddata六:cdapp七:ls(说明,主要是针对不知道包下面的文件,可以列表显示出来)八:rm*.apk(说明:"*.apk"是你要卸载的
7、kage>到的一段数据。例如:保存packages.xml,然后adbpushpackages.xml/data/system将packages.xml文件送回设备中。然后再次adbinstall安装你的apk文件,看看是否success。如果还不能成功,还有一种可能性,就是你的安装包与之前设备上的安装包签名不一致,或者你的安装包根本就没有签名。这时候采用adbuninstall包名卸载之前的安装包,再次adbinstall安装你的apk文件。如果还不行,请查看logcat,进一步分析具体原因
8、。方法二:要解决这个问题,你需要完全卸载预安装版本,然后使用adb工具重新安装它。下面告诉你该怎么做:一:首先需要启动模拟器二:start-> 运行 ->CMD三:进入andoridsdk下面的tools目录四:adbshell五:cddata六:cdapp七:ls(说明,主要是针对不知道包下面的文件,可以列表显示出来)八:rm*.apk(说明:"*.apk"是你要卸载的
此文档下载收益归作者所有