android逆向与安全
luohai859
这个作者很懒,什么都没留下…
展开
-
Android逆向之动态调试总结
一、在SO中关键函数上下断点刚学逆向调试时。大多都满足于在SO中某关键函数上下断点。然后通过操作应用程序,去触发这个断点,然后进行调试详细的步骤可以参见非虫大大的《Android软件安全与逆向分析》简单说:在libsyclover.so文件中有一个函数jnicall1。每次单击按钮的时候,便会调用此函数。1.静态载入此so文件,找到函数的偏移地址为:0x13转载 2017-01-19 16:58:11 · 338 阅读 · 0 评论 -
浅谈被加壳ELF(即android的so文件)的调试
本文只讨论如何调试被加壳的ELF文件,包括调试中的技巧运用及调试过程中可能遇到的问题的解决方法,不包含如何还原加固的DEX本文将以某加壳程序和某加固为目标。一、ELF格式简介ELF全称:Executable and Linkable Format,是Linux下的一种可执行文件格式。此种文件格式和WINDOWS一样,常见分为两种类型:1.可执行文件(Executab转载 2017-01-19 16:59:26 · 801 阅读 · 0 评论 -
在Android so文件的.init、.init_array上和JNI_OnLoad处下断点
移动端Android安全的发展,催生了各种Android加固的诞生,基于ELF文件的特性,很多的加固厂商在进行Android逆向的对抗的时,都会在Android的so文件中进行动态的对抗,对抗的点一般在so文件的.init段和JNI_OnLoad处。因此,我们在逆向分析各种厂商的加固so时,需要在so文件的.init段和JNI_OnLoad处下断点进行分析,过掉这些加固的so对抗。转载 2017-01-19 17:07:25 · 8875 阅读 · 0 评论 -
Ida双开定位
Ida双开定位的意思是先用ida静态分析so文件,然后再开一个ida动态调试so文件。因为在动态调试中ida并不会对整个动态加载的so文件进行详细的分析,所以很多函数并无法识别出来。比如静态分析中有很多的sub_XXXX函数:但动态调试中的ida是没有这些信息的。所以我们需要双开ida,然后通过ida静态分析的内容来定位ida动态调试的函数。当然很多时候我们也需要动转载 2017-01-19 17:09:31 · 654 阅读 · 0 评论 -
Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
我们继续分析自毁程序密码这个app,我们发现该程序会用fopen ()打开/proc/[pid]/status这个文件,随后会用fgets()和strstr()来获取,于是我们在strstr()处下个断点,然后让hex view的数据与R0同步。每次点击继续,我们都会看到strstr传入的参数。当传入的参数变为TracerPid:XXXX的时候我们停一下。因为在正常情况下,TracerPid的值应转载 2017-01-19 17:12:27 · 1457 阅读 · 0 评论 -
简单粗暴的对android so文件加壳,防止静态分析
以前一直对.so文件加载时解密不懂,不了解其工作原理和实现思路。最近翻看各种资料,有了一些思路。看到论坛没有类似帖子,故来一帖,也作为学习笔记。限于水平,本菜没有找到安卓平台一些具体实现思路,这些方法都是借鉴其他平台的实现思路和本菜的YY,肯定会有不少疏漏和错误之处,还请各位大牛指正,感激不尽!简单粗暴的so加解密实现一、 概述利用动态链接库实现安卓应用的核心部分,能一定程度的对转载 2017-01-19 17:31:11 · 2199 阅读 · 0 评论 -
使用IDA从内存中dump指定的dex
虽然自己编译了一套能够简单够脱壳的坏境,不过使用上总感觉比较重量级。今天只想把APK中某个动态解密,加载的dex搞出来,用IDA轻快很多。步骤1:首先通过cat /proc/pid/maps查看目标dex文件所在的内存地址:可以看到我们的起始地址是:5faa2000 结束地址是:5fb36000转载 2017-01-19 17:56:37 · 1292 阅读 · 0 评论 -
使用IDA逆向Android的.so动态库文件
当然,这只是一个笔记:最近将一个反复刷机闲置的山寨机用作游戏机,安装一个叫Townsmen的游戏,蹦出一个占了1/3屏幕的广告跟阿里YunOS系统无法Root一样,我原以为只有中国妓造才那么无耻,没想到……屏幕是我的,商家无权抢占消费者的任何合法资产,所以,切你没商量1.反编译townsmen7_36.apk文件命令为(目录因具体情况转载 2017-01-19 18:02:09 · 3110 阅读 · 0 评论