Android逆向Android基础逆向(2 - 2)

  (toc)

  

# 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基础逆向(2 - 2)
这里对应使用一个实例分析,就用Android逆向Android基础逆向(1)中的简单的apk来分析吧。
# # # 1.1幻数
 Android逆向Android基础逆向(2 - 2)
这里魔数是08年00 00 03,这个是一个固定的值。
# # # 1.2文件大小
这个就是用来确认文件大小的。
 Android逆向Android基础逆向(2 - 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。第二个模块

  

 Android逆向Android基础逆向(2 - 2)
# # # 1。块类型
字符串块的标识符,默认是08年00 00 03
 Android逆向Android基础逆向(2 - 2)

  

2。块大小

  

字符串块的大小。
 Android逆向Android基础逆向(2 - 2)
 Android逆向Android基础逆向(2 - 2)

  

3。字符串数

  

字符串的个数。
 Android逆向Android基础逆向(2 - 2)

  

4。风格数

  

样式的个数
 Android逆向Android基础逆向(2 - 2)
 Android逆向Android基础逆向(2 - 2)

  5.

不明   

Android逆向Android基础逆向(2 - 2)