12下一页
返回列表 发新帖

学习安卓逆向的心得

  [复制链接]

111

主题

1674

帖子

8355

积分

硕士生

v夏糜

Rank: 6Rank: 6

金币
1231
好评
130
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-6-29 07:39:38 来自手机  | 显示全部楼层 | 阅读模式
安卓文件介绍:将apk文件格式改为zip格式,然后解压,就可以得到安卓程序文件夹
lib文件夹:so库存放位置,一般有ndk编译得到的
res文件夹:资源目录
classes.dex java代码编译得到的dalvik vm能执行的文件
AndroidMainfest.xml 安卓工程的基础配置文件

什么是dalvik字节码?
dalvik是Google专门为Android开发的一个虚拟机,不同于jvm基于栈的特点,dalvik vm基于寄存器。

寄存器:在smali中,所有操作都要经过寄存器来进行
本地寄存器:V开头数字结尾的符号来表示,如v0、v1(通常先局部变量,后参数)
参数寄存器:p开头数字结尾的符号来表示,如p0、p1(v0表示局部变量,参数从p0开始)
p0在非静态函数中,作用相当于this,p1代表函数的第一个参数(static中p0才是第一个参数)
寄存器和堆栈的区别:寄存器是在CPU储存器中,栈堆在内存中,所以CPU读取寄存器变量的速度,远远大于读取普通变量的速度,但是jvm和dalvik的数据存取都是基于栈。
对于小于等于32位长度的数据类型,一个寄存器就可以存值,64位长度的,使用相邻寄存器共同存值。

smali学习:首先要了解smali大致的语法
JAVA和Smali数据类型对比:

基本语句

跳转语句

怎么得到smali代码
使用android killer软件,对apk进行反编译,然后得到smali代码

direct method:相当于private函数
vitrual method:相当于public、protected函数
static:静态函数
interface:接口函数

invoke:调用
invoke-direct:调用private函数
invoke-vitrual:调用public函数
invoke-super:调用父类方法,一般用于调用oncreate、ondestroy等方法

循环for:
goto0:
/*
代码
*/
goto:goto0

nop:是空操作指令助记符,值为00,但通常是用来对齐代码,无实际作用。
move:用于数据操作,如move vA,vB:将vB寄存器的值赋给vA寄存器
move-result vAA:将上一个invoke类型指令操作的单字非对象结果赋给vAA,如果是双字,则使用move-result-wide指令
线程锁指令:monitor-enter vAA:获取锁 monitor-exit vAA:释放锁
throw vAA:抛出异常
比较指令:cmpking vAA,vBB,vCC 比较vBB vCC的大小,将结果存入vAA(逆向分析P70)
可用的具体指令有:cmp-long,cmpg-double,cmpl-float等

利用ADB连接安卓机
下载最新的adb工具包,将adb的bin目录加入环境变量,就可以在cmd里面执行adb命令。然后安卓数据线连接手机,用360驱动大师软件扫描安卓的驱动,点击安装。安装完毕后,在cmd命令里输入adb devices,检查手机是否连接成功(手机需要在开发人员选项里打开调试模式)

利用smali破解软件付费
直接在项目里搜索“失败”或“成功”的unicode编码,在搜索的结果定位关于支付、购买等关键词的位置,然后进行逻辑上的分析,替换代码逻辑。也可以通过定位支付成功或者失败的函数,定位到支付相关的决策方法,改变决策逻辑。
动态调试smali代码
动态调试代码的关键是AS能运行该apk的smali代码,通过adb sapk的包名和activity的入口名,进行连接,通过Android Device monitor监控是否连上手机正在运行的软件。

安卓的log输出的作用(感悟较少)
可以通过在smali代码中添加log输出的方式,去监控软件运行留下的轨迹。

so库的编写(如果仅仅是调用so库,可以使用JNA)
编写一个jni类(jni.java),在静态块里使用System.loadLibrary(“加载的so库名”);用来加载so库
类中使用native声明需要调用到的so库的函数接口,可以在类中声明多个接口函数。
将jni类通过javac编译成jni.class
到java文件夹下使用javah -jni 包名.类名生成.h文件,新建一个main.c,将.h内容复制进去。
使用NDK生成so库
so库可以用IDA反编译查看,动态调试

https://bbs.pediy.com/thread-225511.htm 安卓hook app分析
https://bbs.pediy.com/thread-221107.htm 安卓运行检测函数过程(DDMS)
https://www.cnblogs.com/xuan52rock/p/5245145.html DDMS使用详解
https://bbs.pediy.com/thread-226233.htm xposed课微信篇
https://bbs.pediy.com/thread-217587.htm全能hook框架

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
已有2人评分好评 理由
z2000 + 1
F111 + 1

查看全部评分 总评分:好评 +2 

回复

使用道具 举报

111

主题

1674

帖子

8355

积分

硕士生

v夏糜

Rank: 6Rank: 6

金币
1231
好评
130
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-6-29 07:40:02 来自手机  | 显示全部楼层
沙发给自己
回复

使用道具 举报

5

主题

2021

帖子

4596

积分

大学生

Rank: 5Rank: 5

金币
2622
好评
0
贡献
0
发表于 2019-6-29 07:42:51 来自手机  | 显示全部楼层
路过顶一下
回复

使用道具 举报

6

主题

223

帖子

1129

积分

高中生

Rank: 4

金币
283
好评
2
贡献
0
发表于 2019-6-29 07:58:03 来自手机  | 显示全部楼层
说的真好
回复

使用道具 举报

0

主题

289

帖子

982

积分

高中生

Rank: 4

金币
316
好评
0
贡献
1
发表于 2019-6-29 08:49:57 来自手机  | 显示全部楼层
初心易得  始终难守
回复

使用道具 举报

3

主题

173

帖子

512

积分

初中生

Rank: 3Rank: 3

金币
293
好评
0
贡献
0
发表于 2019-6-29 08:50:28 | 显示全部楼层
感谢分享,论坛有你更精彩
回复

使用道具 举报

30

主题

1669

帖子

4834

积分

大学生

学渣

Rank: 5Rank: 5

金币
952
好评
7
贡献
0

MT论坛最佳新人考神MT论坛活跃会员

发表于 2019-6-29 09:10:44 来自手机  | 显示全部楼层
学习学习
回复

使用道具 举报

17

主题

884

帖子

3024

积分

大学生

刘先森[#滑稽]

Rank: 5Rank: 5

金币
1158
好评
43
贡献
0

考神MT论坛帅哥MT论坛活跃会员

发表于 2019-6-29 09:13:31 来自手机  | 显示全部楼层
路过顶一下
回复

使用道具 举报

42

主题

751

帖子

1782

积分

高中生

Rank: 4

金币
46
好评
3
贡献
1

考神

QQ
发表于 2019-6-29 09:14:31 来自手机  | 显示全部楼层
大大大大佬
回复

使用道具 举报

0

主题

234

帖子

859

积分

高中生

Rank: 4

金币
316
好评
0
贡献
0
QQ
发表于 2019-6-29 09:49:46 来自手机  | 显示全部楼层
一脸懵逼。
回复

使用道具 举报

2

主题

421

帖子

1157

积分

高中生

Rank: 4

金币
97
好评
0
贡献
0

考神

发表于 2019-6-29 10:35:04 来自手机  | 显示全部楼层
受教了,虽然还有点迷迷糊糊
回复

使用道具 举报

29

主题

5379

帖子

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3987
好评
38
贡献
0

考神

发表于 2019-6-29 10:43:16 来自手机  | 显示全部楼层
多谢分享
回复

使用道具 举报

0

主题

256

帖子

848

积分

高中生

Rank: 4

金币
419
好评
0
贡献
0
发表于 2019-6-29 11:18:45 来自手机  | 显示全部楼层
学习学习
回复

使用道具 举报

3

主题

2141

帖子

4564

积分

大学生

Rank: 5Rank: 5

金币
917
好评
1
贡献
0
发表于 2019-6-29 11:25:22 来自手机  | 显示全部楼层
厉害了我的哥
回复

使用道具 举报

68

主题

975

帖子

2642

积分

大学生

Rank: 5Rank: 5

金币
1125
好评
3
贡献
0

考神

发表于 2019-7-4 16:22:45 来自手机  | 显示全部楼层
楼主,辛苦了
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表