java中的接口是类吗
238
2022-10-24
Android逆向-Android基础逆向(2-2)
[toc]
def fenxi(filename): try: f=open(filename,'rb') print 'start--------' i=0 p1="" p2="" p3="" p4="" p="" while True: t=f.read(1) t1=t.encode('hex') if i==0: p1=t1 if i==1: p2=t1 if i==2: p3=t1 if i==3: p4=t1 i=i+1 if i<4: p=p+" " if i==4: break pass p=p4+" "+p3+" "+p2+" "+p1 print "Magic Number:",p i=0 p1="" p2="" p3="" p4="" p="" while True: t=f.read(1) t1=t.encode('hex') if i==0: p1=t1 if i==1: p2=t1 if i==2: p3=t1 if i==3: p4=t1 i=i+1 if i<4: p=p+" " if i==4: break pass p=p4+" "+p3+" "+p2+" "+p1 print "FileSize:",p except IOError: print "This is bad for input '",name,"'." print "You can enter -h for help."
2.第二个模块
2.Chunk Size
3.String Count
4.Style Count
5.Unknow
6.String Pool Offset
7.Style Pool Offset
样式偏移,但是因为样式没有。所以这里全部为0
8.String Offsets
9.常量池
这个就是最主要的地方了。不过中间有一个0的空字符串。需要注意,然后使用一个循环就可以简单的分析出来了。这里帖出代码部分。
while True: t1=f.read(1) t2=f.read(1) tf1=t1.encode('hex') tf2=t2.encode('hex') p1=tf2+tf1 ph=int(p1, 16) p3="" i=0 while True: t=f.read(1) t1=t.encode('hex') p=int(t1, 16) p3=p3+chr(p) t=f.read(1) i=i+1 if i==ph: break pass print "first string:",p3 t=f.read(2) if l==12: t=f.read(4) l=l+1 if l==x-1: break
3.第三个模块 Resourceld Chunk
3.1 Chunk Type
3.2 Chunk Size
3.3Resourcelds
a=p/4-2 i1=0 while True: i=0 p1="" p2="" p3="" p4="" p="" while True: t=f.read(1) t1=t.encode('hex') if i==0: p1=t1 if i==1: p2=t1 if i==2: p3=t1 if i==3: p4=t1 i=i+1 if i==4: break pass p=p4+p3+p2+p1 p5=p4+" "+p3+" "+p2+" "+p1 p=int(p, 16) print "123id:",p,"bytes","hex:",p5 i1=i1+1 if i1==a: break
4.第四个模块
4.1 Chunk Type
4.2 Chunk Size
4.3 Line Number
4.4Unknown
4.5 Prefix
4.6Uri
5.第五个模块
5.1 Chunk Type
标志字段,固定字符。00 10 01 02
5.2 Chunk Size
Chunk 大小
5.3 Line Number
行数,和上一个段一样
5.4 Unknown
位置区域
5.5Namespace Uri
标签用的uri,但是也有可能是返回 ff ff ff ff。代码实现:
i=0 p1="" p2="" p3="" p4="" p="" while True: t=f.read(1) t1=t.encode('hex') if i==0: p1=t1 if i==1: p2=t1 if i==2: p3=t1 if i==3: p4=t1 i=i+1 if i==4: break pass p=p4+p3+p2+p1 p=int(p, 16) try : print "Namespace Uri:",list[p] except IndexError: print "Namespace Uri is nothing"
5.6 name
5.7 flags字段
5.8 Attribute Count
5.9 Class Attribute
5.10Attributes Attribute
6.第六个模块
7.第七个模块
收获
##python 1.python右移的方式2.python格式转换3.对二进制模块分析4.这个是最大的收货,得到了一个xml文件分析工具。5.github地址:xml.py文件分析
结束语
感觉这里需要的内容很多,就得要分成很多小块来说。为什么这里要写关于xml的分析呢,因为加固的目的就是为了防止反编译。那么我们可以针对反编译软件进行针对化加固,在下一个小块将会详细讲解。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~