- 博客(121)
- 收藏
- 关注
原创 nexus5刷机双清 解决手机无限重启
手机无限重启 双清方法:解决方案,手机“双清"后重新刷机,即可正常启动。双清方法如下:https://jingyan.baidu.com/article/359911f594c6bb57fe030635.html进入recovery模式1、拔掉数据线、关机2、按住【音量减小键】不松手,再按【电源键】,会进入bootloader选择模式3、此时音量键是上下移动光标的作用,电源键是确定的...
2019-10-03 14:35:52
1824
转载 Cydia Substrate安装重启之后,无法激活
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-10-03 00:54:56
1359
原创 Cydiasubstrate之Hook
这里我用的nexus5 小米的用不了这框架创建一个android项目。将SDK包中的substrate-api.jar加入到项目的libs文件夹下。在AndroidManifest.xml中加入相关的权限等。<application4.创建Java Class5.粘贴代码import android.content.Context;import com.sauri...
2019-10-03 00:52:44
583
原创 360脱壳_之memcmp
auto fp,addr_start,addr_now,size,addr_end;addr_start = 0x62509000;size = 0x6A7968;addr_end = addr_start+size;fp=fopen(“C:\dump.dex”,“wb”);for(addr_now = addr_start;addr_now<addr_start+size;add...
2019-10-02 00:40:21
523
原创 爱加密脱壳
关键字:libdvm DexFileOpenPartialPK fopen样本:MtkEditer原版.apk反编译 查壳 有爱加密壳脱壳:0x1:adb shellsuchmod 755 /data/local/tmp/as/data/local/tmp/as0x2:adb forward tcp:23946 tcp:239460x3:adb shellam st...
2019-10-01 17:10:15
2223
原创 So自加密解密(找不到JNI_Onload 跟 init_array)
Shelldemo.apk里 libdemo.so看到 getString 这个函数下面是一堆DCD 行说明这个函数 被加密了那么如何得到它真实的 函数样子了?我们得知 在运行的时候 so被加载的时候 是要先被解密 然后加载进内存的我们就想到 在libdvm.so 系统so 里的 loadnative(是关键字不全)这个函数里 这个函数里 有去加载 apk的 so的 J...
2019-09-30 22:46:35
3139
2
原创 内存中提取SO(so里代码被加密时解决办法)
当碰到So里代码 被加密时我们怎么处理了 如何得到解密后的东西了思路是这样:当程序运行时 so被加载的时候 这时候 加载到内存中的时候 的so是解密后了的那么我们就在 动态调试时 加载了这个so后 到Module 模块列表里找到 这个so 可以看到 它的 Base 和 Size通过这两个值 so在内存中的起始地址 和 这个so的大小 我们就可以 dump出来 解密后的 so用...
2019-09-30 01:54:27
2608
原创 动态注册Java接口函数 静态分析被隐藏(加密)时 动态调试解密方法
JNI_OnLoad 里 第三个参数 是一个方法表 里面是 java层接口函数 与 so层里真实的函数 的 映射每3个DCD为一组 Java层函数 前面 so层真实函数 地址按理说 每一组的 第一个DCD为Java层函数 是一个 可见的 字符串然而 这里却 看不到 这个字符串 , 为啥呢?是因为 它被加密了 IDA没分析出来那么我们怎么才能找到这个映射函数呢?我们思路是...
2019-09-30 01:41:33
392
原创 IDA带壳动态调试so分析协议算法
这种情况:针对于 抓包分析时 加密不是那么复杂 但是有壳加密都是在 so中进行的 java层没有进行加密 或者是 很弱的加密 能猜出来的那种 这种方法 运气成分比较大 但也不失为一种方法首先找到到lib文件夹里 找 可疑的so 例如有些名字有含义 能大概猜出来是干啥的比如:libhttputils.so httputils 这含义看起来 就是对http里的 某些字段值 进行加...
2019-09-29 23:52:45
657
原创 android 反编译、反调试方法总结2
0x06 CM中的那些壳子加固手法1.不替换源classes.dex,也没有做任何加密的处理,对classes.dex中的Activity,service, receiver等的oncreate,onReceive,加密替换,壳首先拿到执行权,在自身so里完成对源dex还原。2.不替换源classes.dex,也没有做任何加密的处理, 修改原Dex的Class_Data,将MyConte...
2019-09-29 23:42:41
295
转载 android 反编译、反调试方法总结
0x01 前言最近在分析的很多应用都使用了XXX加固,研究半月未见成效,原因是对反调试的方法和原理不够熟悉,导致无法对程序进行进一步分析和调试,故整理收集现有调试和反调试方法以便加深理解。...
2019-09-29 22:19:45
674
原创 推送服务的分析(小米商城 推送服务)
手机上方的 一些推送服务 推送信息如果要进行 抓包 分析的话不是在 主程序里 的在主程序里是分析不到的而是在 推送的进程里比如 小米商城的主程序进程是com.xiaomi.shop推送服务的 进程是com.xiaomi.shop:pushservice...
2019-09-29 21:57:09
355
原创 小米商城_类抽取分析(插件plugin动态解密)
一些app 希望能动态加载 或者说是 增加逆向难度把部分类 写到插件里 实际用到的时候 再把插件加载到 内存里去然后再xiaomi.apk1:先抓包2:androidkiller反编译搜索关键字搜索不到再多搜几个关键字 发现 还是搜不到那么这是什么原因了这时我们就要想到 是 部分关键类 被 抽取了然后我们到 assets 文件夹里 看到 有 plugins 文件夹...
2019-09-29 18:10:23
544
原创 手机上抓包TCP UDP
需要tcpdump + wiresharktcpdump 在手机上抓包wireshark 上打开 tcpdump分析adb push D:\tcpdump /data/local/tmp/tcpdumpadb shell chmod 6755 /data/local/tmp/tcpdumpadb shellsu/data/local/tmp/tcpdump -p -vv -s 0 -...
2019-09-28 23:40:55
1206
1
转载 Android应用程序的启动过程源码解析—点击图标启动过程
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-09-27 13:39:08
322
转载 Android 的 so 文件加载机制
本文转载来的原文连接https://www.cnblogs.com/dasusu/articles/9810673.htmlAndroid 的 so 文件加载机制最近碰到一些 so 文件问题,顺便将相关知识点梳理一下。提问本文的结论是跟着 System.loadlibrary() 一层层源码走进去,个人对其的理解所整理的,那么开始看源码之前,先来提几个问题:Q1:你知道 so 文件的...
2019-09-27 13:08:51
704
原创 IDA中动态调试下断点——技巧2
IDA中 动态调试 首先考虑 在伪C代码 下断点特别注意:对于 一般的 情况下 可以直接在伪C代码 下断点程序流程分析的话 直接在伪C下断点 调试分析效率极高 很直观 很效率一般来讲先在 主线函数 (Java接口层函数)下 下断点分析 流程然后 在 主线函数里的 函数里 下断点 分析 具体数值来由当jni里的 函数 用的是 java的 函数的时候 这个时候 是不能再内存...
2019-09-26 15:54:47
3263
转载 OPENSSL-DES算法
一、DES算法简介1、DES算法介绍DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。2、工作模式...
2019-09-26 01:38:20
1672
原创 (IDA中) 内存 字节之理解研究
存的基本单位是字节(BYTE). 每个字节是8个二进制位, 所以每个字节能表示的最大的数是11111111, 即十进制的255. 一般来说, 用十六进制比较方便, 因为每4个二进制位刚好等于1个十六进制位, 11111111b = 0xFF. 内存中的字节是连续存放的, 两个字节构成一个字(WORD), 两个字构成一个双字(DWORD)。在INTEL架构中, 采用small endian格式, ...
2019-09-26 01:26:27
1209
1
原创 RSA分析中 publickey 问题
so中分析RSA算法时IDA中 dump 时 publickey 是这样的PUBLIC KEY-----.-----BEGIN PUBLIC KEY-----.MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8WHgg860BYItkr4ivHuiDvtPk. lURX2o97WvdkA8QDKbxPXmbkb4Pqz7oosqTT...
2019-09-25 14:28:01
4227
原创 IDA中动态调试下断点——技巧
首先到入口函数按F5到 伪C代码然后在伪C代码中 找到 要下断点位置 选中然后按 TAB 键 就切换到 IDA View 窗口相应位置了然后在这下断点同理 如果是要到 入口函数里的 关键函数里去下断点先双击 入口函数里的 关键函数 进入 关键函数 伪C代码处然后在要下断点的 关键位置 选中然后按 TAB 键 就切换到 IDA View 窗口相应位置了然后在这下断点能提高很大...
2019-09-25 14:22:32
6229
原创 58 招财猫变形 RSA 与变形 BASE64 逆向分析
0x0 概述:58 招财猫登陆密码算法经过:libcom_wuba_uc_rsa.so 中 Java_com_wuba_uc_RsaCryptService_encrypt 函数加密,下面简称 encrypt 函数。Encrypt 先 调 用 JByte2CChar 把 Java byte 数 组 转 换 为 char * , 然 后 进 一 步 调 用encrypt_default 进...
2019-09-25 14:17:55
1038
1
原创 安卓So(C代码openssl)RSA算法
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <openssl/bn.h>#include <openssl/rsa.h>#include <openssl/pem.h>int main(int argc, char *argv[]...
2019-09-25 14:08:07
398
转载 安卓So(C代码)AES(ECB)算法
用到开源库polarssl最近因为项目需要实现对文本进行AES加解密,所以重新拾起念书的时候学习的加解密。需要完成的是对文本文件进行AES的加解密。在网上我们一般看到的都是加解密固定长度的文本,一般是16byte。对于AES不太熟悉的朋友,可以baidu一下,大概了解一下加密的方式和填充的模式。为了方便,我选择了开源库polarssl,其中有常用加密算法的实现。不过polarssl实现的AES...
2019-09-24 22:13:32
638
原创 IDA中操作快捷键
TAB 切换窗口 快捷键G 跳转到 某个地址处F2 下断点F9 运行F8 步过F7 步入空格键 汇编界面到 图形界面 可以互相切换
2019-09-24 20:13:07
1304
原创 安卓So(C代码)SHA1算法
有点类似MD5规则在《sha1 – 生成 sha1 散列值》中给出了可以生成 SHA1() 函数,它应用很简单。实际上,OpenSSL 还提供了另外一套 API 用以产生 sha1 散列值,该套 API 可以生成更大文件的散列值。比如在 32 位系统下,应用程序不能访问超过 4G (2[sup]32[/sup] )的内存空间,从 SHA1() 函数的第 1 个参数指针也知道,它所指向的空...
2019-09-24 18:33:01
479
原创 IDA中分析 JNI静态动态注册
JNI接口函数 可以通过两种方式实现一种是 静态注册一种是 动态注册静态注册函数名如下JAVA_包名_函数名 (其中包名里的.用_)如果在export导出函数里 搜java关键字 搜不出来 接口函数的话那么就是使用了 动态注册的机制那么我们搜 关键函数 JNI_OnLoad 函数如果把so 对比成 dll的话这里的JNI_OnLoad 函数 就相当于dll里的 启动函数Main...
2019-09-24 18:13:47
1143
原创 ARM汇编中寄存器分析
理解寄存器 对于我们 动态调试SO 捕获关键值 是非常重要的R0非常重要R0 R1 R2R0 作为函数的第一个参数传递R1 作为函数的第二个参数传递R1 作为函数的第三个参数传递同时R0也是作为 函数的返回值意思是一个函数调用完后 有返回值的话 就保存在 R0里面例如:v7 = (v4->functions->GetStringUTFChars)(v4);我们...
2019-09-24 15:17:03
705
原创 在IDA中改写so库里的C代码
memset(&v17, 0, v8 + v9 + 3);// v17 = “”strcat(&v17, v7);// v17 = v17 + v7strcat(&v17, &unk_27A0);//像这样的 就是IDA没翻译出来 是数据段 选中unk_27A0 双击进去.rodata:000027A0 unk_27A0 DCB 0x65...
2019-09-24 14:58:41
641
原创 So中算法常见C库函数
void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。int sprintf(char *str, const char *format, ...
2019-09-24 14:46:00
453
原创 JNI中常用函数
字符串(JNI)从java程序中传过去的String对象在本地方法中对应的是jstring类型,jstring类型和c中的char不同,所以如果你直接当做char使用的话,就会出错。因此在使用之前需要将jstring转换成为c/c++中的char*,这里使用JNIEnv的方法转换.下面是访问String的一些方法:GetStringUTFChars将jstring转换成为UTF-8格式的ch...
2019-09-24 14:40:18
217
原创 安卓So(C代码)MD5算法
只是简单的记录 知道下 流程 代码并不准确/初始化md5的结构/void MD5Init (MD5_CTX *context)/*将与加密的信息传递给md5结构,可以多次调用context:初始化过了的md5结构input:欲加密的信息,可以任意长inputLen:指定input的长度*/void MD5Update(MD5_CTX *context,unsigned char ...
2019-09-24 09:34:33
1027
原创 美拍sig算法so分析
美拍apk分析sig的算法一:fiddler抓包GEThttps://newapi.meipai.com/common/online_switch.json?device_system_version=4.4.2&language=zh-Hans&client_id=1089857302&device_id=866571024961545&version=4...
2019-09-24 00:17:48
1363
1
原创 IDA里so里Java接口函数
IDA中so里导出函数 java接口函数F5里 看C代码 这样的v8 = (*(int (__fastcall **)(_JNIEnv *, int, int))(*(_DWORD *)v6 + 692))(v6, v5, v4);v9 = (*(int (__fastcall **)(_JNIEnv *, int, _DWORD))(*(_DWORD *)v6 + 736))(v6, v...
2019-09-23 19:00:28
762
原创 IDA中 初识SO原理
记住一点:IDA 不是全能的 翻译C代码时 并不能精准的翻译出来所有代码最关键的还是要考 汇编代码so 是用c 或c++ 写的 提供给java调用的 库 相当于dllso存放位置apk压缩包下的 lib文件夹里里面有各种平台的文件夹那么我们是要分析哪个文件夹下的so呢一般来说 我们要分析的是armeabi-v7a 文件夹里的sojava里 加载so库代码例如:packag...
2019-09-23 18:01:59
806
原创 常用cmd命令
adb 是谷歌开发的 电脑控制手机的 调试桥adb devicesadb shell //要用到 adb指令 基本都要先 运行这个指令ls //查看当前目录下的 文件adb push xxx.android_server /data/local/tmp/as //上传as 到手机的目录里cd /data/local/tmp //到这个目录去./as //运...
2019-09-23 14:09:45
256
原创 某apk里 检测手机+禁止调试 代码
//下面是在某个apk里面 看到的 具体没测试过 先抄过来 存个档先if(c.x(this.getApplicationContext())) {Toast.makeText(this.getApplicationContext(), “请在手机上运行 爱流量 应用”, 1).show();new Handler().postDelayed(new a(this), v6);}else...
2019-09-23 13:00:18
457
1
原创 cmd里logcat问题
可以在 cmd里adb shellsulogcat |grep “关键字符串” //可以通过这个 过滤关键字符串 打印出来日志但是在搞算法的时候这个cmd里面 logcat 的 值是不能做最终测试的因为它里面 这个格式 是有 换行啥的 (应该是)实际上是 没有这换行的所以在算法的时候 结果会出错的这个cmd里面的 日志 只能做参考 不能做最终测试...
2019-09-23 09:37:16
281
原创 Xposed hook打印关键值+模拟算法
有时候反编译 回编的时候 apk有各种校验 这样的话 要去掉各种验证 比如签名验证啥的这时我们可以通过 hook方法 避免去回编了首先当然还是得分析出来关键位置然后通过 hook 到关键函数 做各种操作例如 打印出来 关键数值再用androidstudio 模拟出来各种算法啥的例:如果我们要通过 hook 打印出来一个关键值一般来讲 是这样操作的在这个关键值出现以后 作为...
2019-09-23 09:31:29
1049
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人