[Android]安全第五步,看懂汇编(续)
2016-12-21 20:07
148 查看
我们可以看出来c2需要间接寻址,因为c2存在于堆中,而c1则不需要,直接放到sp栈中
void testClass(){ class MyTest{ public: char * dd; void SetX(double mx,char my, char* mz){ x= mx; y= my; z= mz; f= 32.23; } protected: float f; char e; private: double x; char y; char * z; char * dz; }; char addda[] = "atttd"; MyTest myTest; myTest.SetX(1.1,'2',addda); }
在类中,其内存分布与struct一样,
上面的dword_2858其实就是0x9999999A, 0x3FF19999,不同的是因为要放到double中,参数是double类型的,所以需要放到64位中,
其中setText方法就是
在编译器中,有多少对象,就有多少个类的成员变量,即为成员变量随着类的对象生成而生成,但是方法就有一个~
void testUnion(){ typedef union Student{ int age; float ddd; char * monday; char tuesday; short dsd; }Student; Student * dd = (Student * )malloc(111* sizeof(Student)); dd->age = 1; dd->dsd = 12; (&dd[2])->age= 2; Student ccd[2322]; ccd[1].age=2; ccd[1].ddd=3; (&ccd[2])->ddd=21.21; }
共同体union的多个变量在同一个内存区域里面,
共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。
在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。
http://blog.csdn.net/haiou0/article/details/6903463
void testEnum(){ enum Days{sunday,monday,tuesday}; enum Days theDay; theDay = (enum Days)(0); if (sunday == (theDay)){ printf("eee"); } }
枚举在存储过程中明显也是0,1,2,3.。。的样子。注意枚举的用法。
相关文章推荐
- [Android]安全第四步,看懂汇编
- Android中的软件安全和逆向分析[一]—apk反编译破解以及java汇编代码读写
- Android调试的必杀技——反汇编
- 20CN安全小组 汇编教程(80386)
- BREW和Android的安全思想
- Android调试的必杀技——反汇编
- (转) Android 安全机制
- android调试的必杀技——反汇编
- 如何安全的修改原有代码---android mms player调试总结
- BREW和Android的安全思想
- android系统开发编译过程中的汇编错误
- 【翻译】intel指令格式与长度反汇编引擎ADE32分析——来自看雪软件安全网站
- java Android Client客户端 SSL 证书 私钥 公钥 安全 双向认证 怎么解决?
- 标题:[资讯]注意!Android惊爆两安全漏洞
- android安全和权限②----Security Architecture(sandbox)
- Android开发指南-框架主题-安全和许可
- 网站安全管理/网站经营文档汇编
- Android Native(JNI)層的多線程安全
- Android系统的超级终端命令大全(六)--系统安全相关命令
- 使用dex2jar反汇编android的apk文件