首页
社区
课程
招聘
[原创]DEX文件内存加载实现中的数据构造(C部分)
发表于: 2014-12-23 22:21 25834

[原创]DEX文件内存加载实现中的数据构造(C部分)

2014-12-23 22:21
25834
收藏
免费 3
支持
分享
最新回复 (25)
雪    币: 305
活跃值: (95)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
30

16还是12是因为编译平台的差异,最保险的方式是安装下面的方式访问


/*结构体内最大成员对齐 sizeof(ArrayObject) = 24*/
char *fileContent = (char *) malloc(sizeof(ArrayObject) + dexLen);//所有指针为4字节
ArrayObject *fileContentObj = (ArrayObject *) fileContent;
fileContentObj->length =  dexLen;

//memcpy(fileContent + 16, dexBytes, dexLen); //因为按照最大字节对齐 4+4, 4+()
memcpy(fileContentObj->contents, dexBytes, dexLen)

u4* args = (u4*) &fileContentObj; // args => fileContentunion 

JValue pResult;
int cookie;
if(openDexFile != NULL){
    openDexFile(args, &pResult);
}else{
    cookie = -1;
}


2017-2-22 16:06
0
游客
登录 | 注册 方可回帖
返回
//