BubblePig 发表于 2018-1-30 13:46

Android逆向-Android基础逆向(2-3补充篇)

#0x00 前言
##不知所以然,请看
(https://www.52pojie.cn/thread-691091-1-1.html)

(https://www.52pojie.cn/thread-693233-1-1.html)

(https://www.52pojie.cn/thread-693233-1-1.html)

##以及java系列:
(https://www.52pojie.cn/thread-690674-1-1.html)

(https://www.52pojie.cn/thread-684492-1-1.html)

(https://www.52pojie.cn/thread-690679-1-1.html)

(https://www.52pojie.cn/thread-685752-1-1.html)

(https://www.52pojie.cn/thread-690689-1-1.html)

(https://www.52pojie.cn/thread-689279-1-1.html)

(https://www.52pojie.cn/thread-689936-1-1.html)

(https://www.52pojie.cn/thread-690542-1-1.html)

## 学习内容
(1)APK文件伪加密 √

(2)资源文件防反编译 √

(3)apk打包流程 √

(4)apk反编译流程 √

(5)apk回编译流程 √
## 说明
由于篇幅问题所以将这个系列分成了好几个块来进行学习。

# 0x01资源文件防反编译
上一个主题里说说明了xml文件的一些机构问题。这次来进行简单的手动加固尝试与理论分析。
## 1.理论说明
在apk安装的过程中,并不会对一些Android本身没有的内容进行识别,但是在Android killer进行反编译的时候就会对这些文件进行处理。因为没有相对应的模块所以就会进行报错。可能是因为Android killer 少了一个过滤的模块吧。
## 2.实践。
这里参考了http://www.cnblogs.com/wanyuanchun/p/4084292.html。
加固思路就是添加一些没有用的名称索引以及一些假的索引,用来针对反编译软件进行加固。这里不进行了。之后如果有时间的话就再回来做尝试。

如果进行反编译,哪里报错修改哪里,然后把出错的地方进行修改就可以了。
# 0x02 APK打包流程
## 说明
APK打包流程,这里只是做一个简单的了解。
首先来看一张图
![这里写图片描述](http://t1.aixinxi.net/o_1c52n2j9qb9t18vu18ipguvp54a.png-j.jpg)
打包一共分为7步,我们分为7个模块然后一个一个进行讲解。
## 1.第一步,打包资源文件
第一步就是打包资源文件,生成R.java文件
使用工具 aapt
二进制文件采取字符串池进行保存,通过索引来进行缩小文件的大小。
具体可参考:http://blog.csdn.net/luoshengyang/article/details/8744683
## 2.第二步,处理AIDL文件
处理AIDL文件,生成对应的,java文件。
使用工具:aidl
## 3.第三步,编译java文件
编译java文件,生成对应的.class文件
使用工具 javac 这个工具我们应该使用了很多次了吧,但是主要还是使用的是最基本的工具。
## 4.第四步,把.class文件转化.dex文件
这一步是不是也很熟悉呢,是不是也在之前见过一些呢。我们在之前练习smali文件的时候见过这些操作。如果想要具体了解,请查看java系列。
## 5.第五步,生成未签名的apk文件
使用apkbuilder工具,生成未签名的apk文件。
## 6.第六步,签名
工具:jarsigner进行软件的签名工作。
## 7.对其整理
对签名后的.apk文件进行对其整理,如果不整理是不能发布到Google Market的。
使用工具:zipalign工具。
## 结束语
以上就是一个apk进行的简单的流程了。

# 0x03 反编译流程

## 第一步,解压apk,等到dex,和其他资源文件
这里的资源文件我们只是自己分析了一个axmld格式,虽然可能代码没有其他大神写的那么好,但是都是为了能够理解到axml格式的含义,自己能写代码,就会加深理解度。
## 第二步,使用apktool工具进行反编译apk
这里的apktool工具是开元的。我们可以自己更改代码也可以针对apktool工具进行漏洞分析。
## 结束语
这里是一些反编译软件的源码地址:
apktool:https://github.com/iBotPeaches/Apktool
Jadx-gui:https://github.com/skylot/jadx
# 0x4回编译
回编译使用apktool工具,也可以使用aapt工具,和之前的生成apk非常相似,其实过程原理一样。

末主体缘 发表于 2018-8-6 16:36

大大,你的
Android逆向-Android基础逆向(2)

Android逆向-Android基础逆向(2-2)
都不能跳转成功

mayl8822 发表于 2018-1-30 14:14

感谢分享

yiwai2012 发表于 2018-1-30 16:44

啥情况啊 总是回复没反应呢

yiwai2012 发表于 2018-1-30 16:45

不晓得怎么回事

MMAKI 发表于 2018-1-30 17:05

又有新货,谢谢楼主

shian1988 发表于 2018-1-30 21:07

很不错的Android逆向教程,谢谢楼主辛苦分享。。{:17_1070:}

imtom123 发表于 2018-1-31 00:05

優質好文 學習了 謝謝

阿沛 发表于 2018-1-31 00:57

很不错的Android逆向教程,谢谢楼主辛苦分享

蟠桃居士 发表于 2018-1-31 17:58

此教程非常好,收藏学习了

wangvsshen 发表于 2018-1-31 20:12

好东西值得收藏
页: [1] 2
查看完整版本: Android逆向-Android基础逆向(2-3补充篇)