08 2016 档案
摘要:一.程序介绍 游戏界面,很脑残的一个游戏,无脑点屏幕砍怪,还不能移动,而且还要很多钱去购买 支付接口: 二.定位关键代码思路 首先明确我们的目标,破解他的收费(内购) 为了达成这个目标我们得定位到他支付校验的代码,让他支付校验的代码总是返回真即可 那么我们如何定位关键代码呢? 思路如下: 1. 查看
阅读全文
摘要:一.生成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...
阅读全文
摘要:一. dex文件头(1) magic value在DexFile.c dexFileParse函数中 会先检查magic opt啥是magic opt呢? 我们刚刚从cache目录拷贝出来的那个前面的dey 036就是magic opt在源码中会先解析magic opt,然后重设dexfile指针重设magic opt指针后开始解析magic value这 8 个 字节一般是常量。数组的值可以...
阅读全文
摘要:打造smali代码库辅助分析在分析Android应用程序的时候,我们往往会插入代码重打包apk来辅助我们分析的工作一个比较取巧的方法就是先用java写好代码以及相关的调用之后, 然后直接扣出代码然后可以制作成各种代码模版,放在Android Killer中使用(代码模版管理器)Android Killer 自带3种代码模版1. LoadLibraryconst-string v0, "so nam...
阅读全文
摘要:调试个android程序太麻烦了,要敲那么多条命令,还得去看AndroidManifest文件,拿到包名和主Activity名,太麻烦了我实在无法每次都进行这些繁琐的操作,于是写一个脚本,一键帮我完成这些事情一.环境配置github:https://github.com/bingghost/apk_repack python脚本需要预先安装python2.7环境后期我可能会加入自动启动模拟器自动恢...
阅读全文
摘要:一.TraceView概述TraceView 是 Android 平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到 method。详细内容参考:Profiling with Traceview and dmtracedumpTraceView 简介TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Androi...
阅读全文
摘要:一.工程信息工程信息主要是解析的AndroidManifest文件二.工程管理器三.配置插入代码在代码中点右键就可以一键插入代码了四.字符串搜索功能支持正则, 比jeb搜索功能强大来自为知笔记(Wiz)
阅读全文
摘要:一.启动环境JEB 2.0Demo版本启动后出现这样一个界面当前环境算出的许可证数据48000000BDEAE192E4CEFC82B34C2AC67F3A85DF5C0E262E421772CF84F18EC0E4A9F41798FD1648BF2794B4545F6315D6AC21C3921172C29FA004FAE1A8127C585A37F27FC478F9187BD35BBD7BA0...
阅读全文
摘要:编写脚本批量还愿JEB 加密字符串解密完后效果如下:脚本源码:https://github.com/bingghost/JebPlugins思路:下面的该封装的基本都封装了,过程如下:1.先遍历类定位到指定的类,2.然后遍历该类的所有方法定位到解密函数,对其做交叉引用 得到所有引用该解密函数的地方3. 对每一个引用函数做语法解析AST,拿到所有的语法元素信息,同时得到加密的byte数组信息4....
阅读全文
摘要:字符串解密算法还愿jeb.jar为核心功能,所以主要分析这个1. jar转dex在使用jeb分析Android\sdk\build-tools\23.0.3dx.bat --dex --output=输出目录 jeb.jar(路径)2. 载入分析发现很多字符串加密之后的字节数组3.解密字符串代码在这里,把代码拷贝出来,直接解密发现乱码4.仔细分析Smali代码发现问题出在寄存器解析上这是因为v1寄...
阅读全文
摘要:很老的一个样本,简单的分析下练手样本地址:链接:http://pan.baidu.com/s/1hrEO212 密码:j2ul一.样本概述样本主要行为:该样本主要是窃取目标用户的短信,联系人,手机相关信息的App程序程序安装后伪装成移动客户端运行后需要激活设备管理器,防止被设备管理器删除二.详细分析流程1. 程序启动2. 激活设备管理器在低版本Android系统(小于4.0.3)激活设备管理器后会...
阅读全文
摘要:Android模拟位置程序,俗称GPS欺骗,只能修改采用GPS定位的软件。 手机定位方式目前有4种:基站定位,WIFI定位,GPS定位,AGPS定位常见的修改手法:1. 抓包欺骗法,抓包改包欺骗服务器端, 但是得专门去针对某款app,而且现在很多app数据包都加密了2. hook java层经纬度获取函数, 这个方法以前可以用,现在不行了3. hook native层经纬度获取函数 4. 使用允许...
阅读全文
摘要:百度地图官方SDK文档 http://lbsyun.baidu.com/index.php?title=androidsdk 一.申请百度地图SDK 每一个app对应一个百度地图AK,百度地图根据数字签名和程序的包名来确定唯一性 申请时需要提供app的数字签名和app的包名称 对应的百度sdk的文档
阅读全文
摘要:该插件是一款可以自动识别栈上局部变量为字符串的插件,字符串形式如下,并自动的加上注释 如图:可以自动识别栈上的字符串项目主页地址: https://github.com/fireeye/flare-ida 该项目有4个插件 本文介绍 stack_strings插件该插件的原文介绍: https://www.firee...
阅读全文
摘要:1.burpsuite设置导出logn'd'k输入文件名保存2.sqlmap批量扫描 python sqlmap.py -l 文件名 --batch -smart batch:自动选yes。 smart:启发式快速判断,节约时间中文支持可能存在问题3.扫描的结果保存在能注入的在上图csv文件中保存注入的信息保存在对应的文件夹下的log文件,payload信息如下来自为知笔记(Wi...
阅读全文
摘要:我的机器是Nexus 5一. 安装驱动如何进入fastboot模式1. 拔掉数据线,将手机关机2. 关机后同时按住【音量减小键】和【开关机键】即可进入Fastboot模式开启usb调试 --> 勾选usb调试adb devices可以看到设备名即可二. 下载刷机包这是Android 4.4的刷机包,大家可以根据需求自己寻找指定的版本的刷机包https://dl.google.com/dl/and...
阅读全文
摘要: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...
阅读全文
摘要:一些实例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...
阅读全文
摘要: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....
阅读全文
摘要:一.重打开包APK1.apktool解包文件apktool d -d XXX.apk这里注意使用-d参数,生成的smali文件才是以java结尾的,才能被eclipse识别2.找到AndroidManifest文件,设置允许调试找到AndroidManifest.xml文件,在application节点中设置属性android:debuggable="true"或者在回编译时加入-d参数,会自动设...
阅读全文
摘要:一. 编写广告页写一个广告页面,并调用其他页面的demo(1) 设计界面如下(2) 编写代码如下public class SplashActivity extends Activity { private static final int MSG_START_MENU = 1; @SuppressLint("HandlerLeak") Handler mHandler = new...
阅读全文
摘要:如何解释dalvik字节码文档:在Android系统源码目录dalvik\docs有相关指令文档dalvik-bytecode.html实战:来直接实战模拟来理解枯燥的理论用IDA打开一个dex文件, 设置显示指令随便找一段代码注意:206E 28DE 0050是IDA的显示问题 在文件中的存储顺序是6E 20 DE 28 50 00 在WinHex搜索一下就知道了上面截图的指令在文件中的排列顺序...
阅读全文
摘要:主要流程如下图所示: 所需要的工具列表 名称 功能介绍 在操作系统中的路径 aapt Android资源打包工具 ${ANDROID_SDK_HOME}/platform-tools/appt aidl Android接口描述语言转化为.java文件的工具 ${ANDROID_SDK_HOME}/p
阅读全文
摘要:1.启动加载完内核2.执行init进程 ----> 设备初始化工作 a1. 读取inic.rc a2. 启动Zygote进程 ----> 该进程是所有进程的孵化器 b1. 初始化dalvik虚拟机 b2. 启动system_server进程 c1. 通过socket方式发送命令给Zygote进...
阅读全文
摘要:Java源码public class Hello { public int foo(int a,int b) { return (a + b) * (a - b); } public static void main(String[] argc) { Hello hello = new Hello(); System.out.println(hello.f...
阅读全文
摘要:一.原理当在系统中调用System.loadLibrary函数时,该函数会找到对应的动态库,然后首先试图找到"JNI_OnLoad"函数,如果该函数存在,则调用它JNI_OnLoad可以和JNIEnv的registerNatives函数结合起来,实现动态的函数替换二. 实战用ndk学习17的例子继续, 下面演示动态替换TestJni中的sayHellojstring JNICALL Java_or...
阅读全文
摘要:1. 设置调试选项在AndroidManifest文件加入允许调试android:debuggable="true" 此时编译项目会多出:2. 配置调试代码把需要调试的代码,放如按钮事件中,如果放在OnCreate会导致连接调试器时,代码已经跑完了Button btnTest = (Button)findViewById(R.id.button1);btnTest.setOnClickLis...
阅读全文
摘要:一.Hello World1. 定义函数原型native关键字定义的函数即为jni函数2.生成头文件切换到src目录执行: (这个过程可以写脚本自动完成,比如自动拷贝到jni目录)javah -jni 包名.类名在根目录下生成:org_bing_testjni_MainActivity.h3. 工程中添加jni代码工程右键->添加native code->输入名字->finish多了如下文新建一个...
阅读全文
摘要:一.Java反射机制先了解Java反射机制原理例子网上很多,反射很灵活二. 在JNI层调Java用途: Java层逆向比较容易,增加逆向门槛,把调用都写到JNI层, 让Java层无调用关系注意: C和C++有所不同,这里使用C++作为例子1. 首先在代码中提供一个ShowLog函数private void ShowMsg() { Log.d("_BING_", "ShowMsg");} ...
阅读全文
摘要:Linux IPC机制来自为知笔记(Wiz)
阅读全文
摘要:一、UNIX Domain Socket概念:UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC)特点:1. 它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等2. 只是将应用层数据从一个进程拷贝到另一个进程。工作模式:SOCK_DGRAM 类似于UDPSOCK_STREAM 类似于TCP用途:UNIX Domai...
阅读全文
摘要:一.进程相关信息/proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件结构如下:进程相关的信息如下:部分信息如下cmdline:maps:进程相关信息:+ /proc/pid/cmdline 包含进程的参数列表+ /proc/pid/environ 进程的环境+ /proc/pid/maps 进程的地址映射信息+ ...
阅读全文
摘要:1. 进程地址空间 2.内存管理 栈上分配空间 alloca() 栈上分配大小 strdupa() 拷贝一个字符串到栈上(显然这个函数不安全) 挖漏洞的可以全局的源码审计下这个函数了 strndupa() 拷贝指定长度的内容到栈上 存储器操作函数: memset bzero memmove bcop
阅读全文
摘要:画了一天的思维导图,好累啊一.概述二.文件IO三.缓冲区输入输出四.高级IO五.文件和目录来自为知笔记(Wiz)
阅读全文
摘要:动态使用共享库函数 dll_main 环境介绍 续上节代码 目录结构: android.mk如下: LOCAL_PATH:=$(callmy-dir) include$(CLEAR_VARS) LOCAL_MODULE:=demo LOCAL_SRC_FILES:=mod1.cppmod2.cppmod3...
阅读全文
摘要:目录: 手工编译动态库 ndk-build编译动态库(Eclipse环境) 手工编译静态库 老规矩还是先手工操作,知其然并知其所以然 需要用到的核心命令: gcc -g -c -fpic -Wall mod1.c mod2.c mod3.c gcc -g -shared mod1.o mod2.o mod3.o -o libfoo.so gcc -g ...
阅读全文
摘要:目录: 手工编译静态库 ndk-build编译静态库 手工编译静态库 老规矩还是先手工操作,知其然并知其所以然 需要用到的核心命令: gcc –g –c mod1.c mod2.c mod3.c 编译obj (debug版) AR r libdemo.a mod1.o mod2.o mod3.o ...
阅读全文
摘要:生成debug版程序 方法一: 使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之外,还会生成gdbobserver,gdb.setup调式文件 方法二: 修改AndroidManifest.xml文件,增加debuggable属性为true <applicationandroid:debuggable="true" ...
阅读全文

浙公网安备 33010602011771号