# 0 x00前言
# #不知所以然,请看
Android逆向Android基础逆向(1)
Android逆向Android基础逆向(2)
# #以及java系列:
Android逆向java代码基础(1)
Android逆向java代码基础(2)
Android逆向java代码基础(3)
Android逆向java代码基础(4)
Android逆向java代码基础(5)
Android逆向java代码基础(6)
Android逆向java代码基础(7)
Android逆向java代码基础(8)
由于之前的Android逆向Android基础逆向(2)的伪加密部分篇幅太长,导致其他内容没有完成,所以才有了这里的Android逆向Android基础逆向(2 - 2)。希望可以完成计划中的内容。
# #学习内容
(1) APK文件伪加密√
(2)资源文件防反编译
(3) APK打包流程
(4) APK反编译流程
(5) APK回编译流程,
# 0 x01资源文件防反编译
之前说过可以通过更改第四个字段来进行防止一定程度的反编译。那么除了这种伪加密的方式,还有什么方式可以防止这种伪加密的出现呢。
来看看资源文件是如何防止反编译的。
自然我们需要研究一下xml文件的格式。四哥在2016年已经分析过了,不过那是人家分析的,只看别人分析的不能进行更深入的学习。纸上得来终觉浅,绝知此事要躬行,所以,就有了这篇。
# # 1。第一个模块
这里对应使用一个实例分析,就用Android逆向Android基础逆向(1)中的简单的apk来分析吧。
# # # 1.1幻数
这里魔数是08年00 00 03,这个是一个固定的值。
# # # 1.2文件大小
这个就是用来确认文件大小的。
这里是00 00 07年90,也就是1970个字节。
# # # 1.3用python实现分析
四哥用java写的,我就献丑写个python的,还在学习python的过程中,有什么错误或者做的不好的地方,还请见谅。
这个是实现这个模块的代码。但是感觉自己写的好繁琐,等一会儿适当修改一下。
2018年1月27日11:57:35,忙别的事情去了。
<代码> def fenxi(文件名): 试一试: f=open (filename, rb) 打印“开始- - - - - - - - - -” 我=0 p1=" " p2=" " p3=" " p4=" " p=" " 而真正的: t=f.read (1) t1=t.encode(十六进制) 如果我==0: p1 t1=如果我==1: p2 t1=如果我==2: p3 t1=如果我==3: p4 t1=我+ 1=如果i<4: p=p +”“ 如果我==4: 打破 通过 p=p4 + " " + p3 + " " + p + " " + p1 打印“神奇数字:“p 我=0 p1=" " p2=" " p3=" " p4=" " p=" " 而真正的: t=f.read (1) t1=t.encode(十六进制) 如果我==0: p1 t1=如果我==1: p2 t1=如果我==2: p3 t1=如果我==3: p4 t1=我+ 1=如果i<4: p=p +”“ 如果我==4: 打破 通过 p=p4 + " " + p3 + " " + p + " " + p1 文件大小:“打印”,p 除了IOError:那么 打印”这是不利于输入“名称”,“。” 打印”您可以输入- h的帮助。” 代码>
2。第二个模块
# # # 1。块类型
字符串块的标识符,默认是08年00 00 03
2。块大小
字符串块的大小。
3。字符串数
字符串的个数。
4。风格数
样式的个数