|
|
|
|
|
|
|
[求助]自己写的PE加载器碰到了一严重问题
我在修改导入表前添加了重定位信息的修改,但是问题依旧存在,为什么呢 //修改重定位数据 pReloc = (IMAGE_BASE_RELOCATION*)(handle + pDataDir[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress); while (pReloc->VirtualAddress != 0) { DWORD base = pReloc->VirtualAddress; int nr = (pReloc->SizeOfBlock - 8) / 2; for (int i = 0 ; i < nr ; i++) { WORD entry = *(WORD*)(pReloc + 8 + i * sizeof(WORD)); if (!entry) continue; DWORD* pData = (DWORD*)(handle + pReloc->VirtualAddress + (entry & 0x0FFF)); switch ( entry >> 12)//高4位表示重定位类型 { case IMAGE_REL_BASED_HIGHLOW: *pData = *pData + delta; break; } } pReloc = (IMAGE_BASE_RELOCATION*)((DWORD)pReloc + pReloc->SizeOfBlock); } |
|
|
|
[求助]自己写的PE加载器碰到了一严重问题
我看了几篇文章都没对怎么处理重定位做详细的描述,能提示下吗? |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值