Android
梦回花果山
这个作者很懒,什么都没留下…
展开
-
日志处理
应用发生crash之后要查看log,判断问题出在什么地方,可是一旦应用发布出去,就要想办法把用户的崩溃日志拿到分析。所以要在发生crash之后抓取log,然后上传到服务器,方便开发者查看,现在都有很多第三方做这方面的服务,这里说下如何自己来实现。其实原理很简单,应用出现异常后,会由默认的异常处理器来处理异常,我们要做的就是把这个任务接管过来,自己处理异常,包括收集日志,保存转载 2016-08-20 18:21:08 · 638 阅读 · 0 评论 -
android学习资料
因为喜欢Android安全,而Android逆向是Android安全的一个分支,所以小弟利用业余时间自学了一点Android逆向。在学习过程中总结了一点学习资料,特此分享给大家。(1)Android安全大牛的博客: 鬼哥的博客: 听鬼哥说故事 Jack_Jia的博客: Android手机病毒分析及研究 i 简行转载 2016-09-02 15:50:53 · 358 阅读 · 0 评论 -
android逆向9
使用dex2jar反编译Apk中的classes.dex就能获取到Apk的java层源代码。那么有什么办法可以保护classes.dex,防止Apk的源代码被偷窥呢?那就是加壳了,关于Apk加壳的技术原理,请看这篇博客Android APK加壳技术方案【1】 小弟所了解的Apk脱壳方法有两种:(1)使用脱壳神器ZjDroid进行脱壳,详细操作请看这两篇博客:Android动态逆转载 2016-09-02 15:49:46 · 943 阅读 · 0 评论 -
android8 ndk
在上篇文章中,我记录了破解Java层的签名校验。本文介绍的则是破解NDK层的签名校验,与Java层的签名校验相比,NDK层的签名校验破解的难度更大一些。但是NDK层签名校验破解的思路与Java层签名校验破解的思路相似: (1) 通过输入“signature”关键字定位获取本Apk签名信息的函数(在下文中,我们用getApkSign来标记该函数); (2) 找出调用的转载 2016-09-02 15:48:47 · 382 阅读 · 0 评论 -
android逆向8
做为Android开发者,我们应该知道没有签名的Apk是无法在真机(模拟器)上安装运行的。为了防止自己开发的Apk被别人二次打包,有些开发者会在App运行时获取当前Apk的签名信息并与正版Apk的签名信息进行比对,一旦发现不相同,就会弹出对话框提示用户当前应用是盗版或者终止App的运行,这就是Apk签名校验。开发者可以在Java层或者NDK层实现签名校验,而破解NDK层的签名校验要比破解Java层转载 2016-09-02 15:47:36 · 422 阅读 · 0 评论 -
android逆向7
今天,我要记录的是smali注入攻击。我们在破解某个apk时,通常的流程是这样的:先用某个工具逆向apk获取到源代码,然后再修改源代码,再用工具进行二次打包。通过前面一些文章的介绍,我们知道可以用dex2jar反编译classes.dex以获取java源代码,但是我们是无法对java源代码进行修改的。如果想要修改某个apk的源代码,我们必须先将该apk反编译,然后修改反编译所得到的smali代码,转载 2016-09-02 15:46:14 · 351 阅读 · 0 评论 -
android逆向6
在上篇文章中,我们介绍了如何利用IDA Pro来动态调试so文件。在移动安全领域有攻就有防,为了防止apk中的so文件被动态调试,开发者往往会使用一些反调试手段来干扰黑客的动态调试。其中最常见的就是在so文件中检测TracerPid值,详情请见这篇博客:爱加密脱壳本文以2015阿里巴巴移动安全大赛中的第二道题为例,IDA Pro版本为6.5 。这里只介绍如何通过在JNI_O转载 2016-09-02 15:45:27 · 306 阅读 · 0 评论 -
android逆向5
在上篇文章中,我简单介绍了使用IDA Pro静态分析so文件。今天,我将介绍一下如何使用IDA Pro动态调试so文件。本文的使用的IDA Pro版本为6.5版本,下面介绍一下动态调试so文件的流程:(1)在IDA的安装路径中找到android_server文件。(2)将android_server拷贝到手机的/data/local/tmp目录下面。转载 2016-09-02 15:44:30 · 377 阅读 · 0 评论 -
android逆向4
安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程序的核心部分都使用NDK进行开发。关于NDK的开发知识点,请看这篇博客:Android之NDK开发。 关于NDK环境搭建的知识点,请看这篇博客:Android NDK开发篇(一):新版NDK环境搭建(免Cygwin,超级快)转载 2016-09-02 15:43:28 · 332 阅读 · 0 评论 -
android逆向3
这篇文章将介绍一个apk反编译工具apktool。我们可以用apktool反编译apk,并且可以对反编译得到的文件重新打包生成新的apk。本文使用的apktool版本为v2.0.0RC3,待反编译的apk为HelloWorld.apk。我们的目标是反编译HelloWorld.apk,将apk显示的字符串“Hello world!”修改为“Hello Apktool!”。下面转载 2016-09-02 15:42:38 · 282 阅读 · 0 评论 -
android逆向2
在上一篇文章安卓逆向学习笔记(0)中,我记录了apk的文件结构,其中有一个classes.dex文件。classes.dex是apk的核心文件,其运行在安卓Dalvik虚拟机上。通过查看apk的编译生成过程,我们可以得知:Java源代码首先被编译成.class文件,然后Android SDK自带的dx工具会将这些.class文件转换成classes.dex。所以我们只需要想办法反编译classes转载 2016-09-02 15:40:47 · 372 阅读 · 0 评论 -
android逆向1
0.什么是apk? apk是AndroidPackage的缩写,即Android应用安装包(apk)。 新建一个安卓工程HelloWorld(本文采用的SDK版本为Android 4.4),该工程的源代码结构如图1所示:图1 HelloWorld源代码的结构 编译运行该工程,我们会在HelloWorld文件夹的b转载 2016-09-02 15:39:32 · 576 阅读 · 0 评论 -
android
一、前言今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为了安全或者效率问题,会把一些重要的功能放到native层,那么这样一来,我们前篇说到的Eclipse调试smali源码就显得很无力了,因为核心的都在native层,android中一般nativ转载 2017-08-25 10:33:38 · 470 阅读 · 0 评论