1.小端存储(Little Endian)。
字节或半字节的最低位字节(Lowest Significant Bit,LSB)存放于内存最低位字节地址上.
2.upx脱壳
有的时候用软件脱壳不成功的话需要使用虚拟机里的upx -d命令来进行脱壳。
3.unity类的游戏
.Android平台的apk包可以直接解压,看是否有./assets/bin/Data/Managed目录,也可以查看lib文件夹下面包含的一些so,如果有libmono,libunity等模块,基本可以确定是unity游戏了。
Android平台中C#编写的主逻辑模块代码静态编辑之后存储于Assembly-CSharp.dll文件中。因为unity的跨平台,Android平台是unity编译的游戏,那么其对应的IOS平台上也是unity编译出来的。如果希望直接从IOS上面去看是否是unity游戏,可以提取游戏中的主模块查看是否有unity之类的函数即可。
重点是在Assembly-CSharp.dll 文件中!用dnspy打开该文件即可。
不能反汇编
1.upx脱壳
2.有的需要手动脱壳(不会)
3.虚拟机脱壳
4.堆栈不平衡