随笔分类 -  Android应用层逆向

摘要:载入JEB发现支付SDK好熟悉EgamePay上次分析的一个游戏就是从支付SDK入手,回溯定位所以直接进入EgamePay,对pay函数做交叉引用 定位到如下函数,但是我们操作了一下,Log.i的日志并没有输出 我们跟进那个listener对其做交叉引用 然后去插入日志看哪些pay来了 可以看到我们pay111来了 修改onResult 直接调用OnSuccess并返回 最后修改成功 总结一下... 阅读全文
posted @ 2016-09-03 13:31 Bingghost 阅读(350) 评论(0) 推荐(0)
摘要:先来看看整体的结构,结构体定义在DexFile.h里面 在dexFileSetupBasicPointers中设置各个子结构体,当然是在解析DexHeader之后源码在DexFile.c文件中 在解析每个子结构体之前我们先了解下leb128格式,源码leb128.c中解析这种格式 LEB128 ( little endian base 128 ) 格式 ,是基于 1 个 Byte 的一种不定长度的... 阅读全文
posted @ 2016-09-03 10:46 Bingghost 阅读(854) 评论(0) 推荐(0)
摘要:分析目标:破解神庙逃亡内购一.神庙逃亡网络验证破解首先用Android Killer载入, 然后编译,运行,发现提示盗版软件 继续搜索dialog_initconfig_msg a方法show弹出了警告框,其主要是这个arg4.d为校验值 向上层追踪来源于这里赋值,但是这个只没法做交叉引用,只好用堆栈法来进行跟踪了追踪得到这些信息 一层层耐心的向上层跟踪关键点 原来是发了包,把程序的签名发送过去了... 阅读全文
posted @ 2016-09-01 00:14 Bingghost 阅读(1006) 评论(0) 推荐(0)
摘要:一.程序介绍 游戏界面,很脑残的一个游戏,无脑点屏幕砍怪,还不能移动,而且还要很多钱去购买 支付接口: 二.定位关键代码思路 首先明确我们的目标,破解他的收费(内购) 为了达成这个目标我们得定位到他支付校验的代码,让他支付校验的代码总是返回真即可 那么我们如何定位关键代码呢? 思路如下: 1. 查看 阅读全文
posted @ 2016-08-31 20:16 Bingghost 阅读(649) 评论(0) 推荐(0)
摘要:一.生成dex文件我们可以通过java文件来生成一个简单的dex文件编译过程:首先编写java代码如下:(1) 编译成 java class 文件执行命令 : javac Hello.java编译完成后 ,目录下生成 Hello.class 文件(2) 编译成 dex 文件dx --dex --output=Hello.dex Hello.class编译正常会生成 Hello.dex 文件00 3... 阅读全文
posted @ 2016-08-31 13:16 Bingghost 阅读(1286) 评论(0) 推荐(0)
摘要:一. dex文件头(1) magic value在DexFile.c dexFileParse函数中 会先检查magic opt啥是magic opt呢? 我们刚刚从cache目录拷贝出来的那个前面的dey 036就是magic opt在源码中会先解析magic opt,然后重设dexfile指针重设magic opt指针后开始解析magic value这 8 个 字节一般是常量。数组的值可以... 阅读全文
posted @ 2016-08-31 13:16 Bingghost 阅读(603) 评论(0) 推荐(0)
摘要:打造smali代码库辅助分析在分析Android应用程序的时候,我们往往会插入代码重打包apk来辅助我们分析的工作一个比较取巧的方法就是先用java写好代码以及相关的调用之后, 然后直接扣出代码然后可以制作成各种代码模版,放在Android Killer中使用(代码模版管理器)Android Killer 自带3种代码模版1. LoadLibraryconst-string v0, "so nam... 阅读全文
posted @ 2016-08-31 13:10 Bingghost 阅读(506) 评论(0) 推荐(0)
摘要:调试个android程序太麻烦了,要敲那么多条命令,还得去看AndroidManifest文件,拿到包名和主Activity名,太麻烦了我实在无法每次都进行这些繁琐的操作,于是写一个脚本,一键帮我完成这些事情一.环境配置github:https://github.com/bingghost/apk_repack python脚本需要预先安装python2.7环境后期我可能会加入自动启动模拟器自动恢... 阅读全文
posted @ 2016-08-31 12:06 Bingghost 阅读(472) 评论(0) 推荐(0)
摘要:一.工程信息工程信息主要是解析的AndroidManifest文件二.工程管理器三.配置插入代码在代码中点右键就可以一键插入代码了四.字符串搜索功能支持正则, 比jeb搜索功能强大来自为知笔记(Wiz) 阅读全文
posted @ 2016-08-29 23:59 Bingghost 阅读(3025) 评论(0) 推荐(0)
摘要:一.启动环境JEB 2.0Demo版本启动后出现这样一个界面当前环境算出的许可证数据48000000BDEAE192E4CEFC82B34C2AC67F3A85DF5C0E262E421772CF84F18EC0E4A9F41798FD1648BF2794B4545F6315D6AC21C3921172C29FA004FAE1A8127C585A37F27FC478F9187BD35BBD7BA0... 阅读全文
posted @ 2016-08-29 22:06 Bingghost 阅读(3445) 评论(0) 推荐(0)
摘要:编写脚本批量还愿JEB 加密字符串解密完后效果如下:脚本源码:https://github.com/bingghost/JebPlugins思路:下面的该封装的基本都封装了,过程如下:1.先遍历类定位到指定的类,2.然后遍历该类的所有方法定位到解密函数,对其做交叉引用 得到所有引用该解密函数的地方3. 对每一个引用函数做语法解析AST,拿到所有的语法元素信息,同时得到加密的byte数组信息4.... 阅读全文
posted @ 2016-08-29 21:27 Bingghost 阅读(2640) 评论(0) 推荐(0)
摘要:字符串解密算法还愿jeb.jar为核心功能,所以主要分析这个1. jar转dex在使用jeb分析Android\sdk\build-tools\23.0.3dx.bat --dex --output=输出目录 jeb.jar(路径)2. 载入分析发现很多字符串加密之后的字节数组3.解密字符串代码在这里,把代码拷贝出来,直接解密发现乱码4.仔细分析Smali代码发现问题出在寄存器解析上这是因为v1寄... 阅读全文
posted @ 2016-08-29 21:22 Bingghost 阅读(1739) 评论(0) 推荐(0)
摘要:很老的一个样本,简单的分析下练手样本地址:链接:http://pan.baidu.com/s/1hrEO212 密码:j2ul一.样本概述样本主要行为:该样本主要是窃取目标用户的短信,联系人,手机相关信息的App程序程序安装后伪装成移动客户端运行后需要激活设备管理器,防止被设备管理器删除二.详细分析流程1. 程序启动2. 激活设备管理器在低版本Android系统(小于4.0.3)激活设备管理器后会... 阅读全文
posted @ 2016-08-29 21:21 Bingghost 阅读(2981) 评论(0) 推荐(0)
摘要:DroidBox是一个动态分析Android代码的的分析工具。其目前的安装环境为:Linux/Unix/MacOSX 下面是安装步骤一. 安装Android SDK 并添加环境变量export PATH=$PATH:/path/to/android-sdk/tools/ export PATH=$PATH:/path/to/android-sdk/platform-tools/二. 下载droid... 阅读全文
posted @ 2016-08-24 23:06 Bingghost 阅读(653) 评论(0) 推荐(0)
摘要:一些实例1. 遍历当前光标处函数所有的ElementJava代码:import java.io.*;import java.util.List;import jeb.api.IScript; import jeb.api.JebInstance;import jeb.api.ui.*;import jeb.api.ast.*;public class Hello implements IScri... 阅读全文
posted @ 2016-08-21 16:30 Bingghost 阅读(564) 评论(0) 推荐(0)
摘要:2.0之后好像新增加了很多API,有所区别本文采用Java+Eclipse作为开发环境插件支持的语言 文档:jeb-1.5/doc/index.html一.Hello World工程1. Eclipse插件开发环境配置新建Java工程->工程目录下新建lib目录->右键->add to build path配置JavaDoc 这样写代码的时候 有实时的文档可以看2. 编写代码import jeb.... 阅读全文
posted @ 2016-08-21 16:29 Bingghost 阅读(1011) 评论(0) 推荐(0)
摘要:一.重打开包APK1.apktool解包文件apktool d -d XXX.apk这里注意使用-d参数,生成的smali文件才是以java结尾的,才能被eclipse识别2.找到AndroidManifest文件,设置允许调试找到AndroidManifest.xml文件,在application节点中设置属性android:debuggable="true"或者在回编译时加入-d参数,会自动设... 阅读全文
posted @ 2016-08-21 16:27 Bingghost 阅读(738) 评论(0) 推荐(0)
摘要:一. 编写广告页写一个广告页面,并调用其他页面的demo(1) 设计界面如下(2) 编写代码如下public class SplashActivity extends Activity { private static final int MSG_START_MENU = 1; @SuppressLint("HandlerLeak") Handler mHandler = new... 阅读全文
posted @ 2016-08-14 00:24 Bingghost 阅读(475) 评论(0) 推荐(0)
摘要:如何解释dalvik字节码文档:在Android系统源码目录dalvik\docs有相关指令文档dalvik-bytecode.html实战:来直接实战模拟来理解枯燥的理论用IDA打开一个dex文件, 设置显示指令随便找一段代码注意:206E 28DE 0050是IDA的显示问题 在文件中的存储顺序是6E 20 DE 28 50 00 在WinHex搜索一下就知道了上面截图的指令在文件中的排列顺序... 阅读全文
posted @ 2016-08-14 00:23 Bingghost 阅读(819) 评论(0) 推荐(0)
摘要:主要流程如下图所示: 所需要的工具列表 名称 功能介绍 在操作系统中的路径 aapt Android资源打包工具 ${ANDROID_SDK_HOME}/platform-tools/appt aidl Android接口描述语言转化为.java文件的工具 ${ANDROID_SDK_HOME}/p 阅读全文
posted @ 2016-08-13 23:56 Bingghost 阅读(518) 评论(0) 推荐(0)