OEMEnumExtensionDRAM函数什么时候调用

ctstart 2011-11-04 10:43:09
我在winCE下用OEMEnumExtensionDRAM函数扩展内存,在OEMInit中对pNKEnumExtensionDRAM指针进行初始化

在OEMEnumExtensionDRAM函数中我打印了一些提示信息,但是OS烧到板上后发现串口并没有打印出这些信息

不知OEMEnumExtensionDRAM这个函数是否在OEM初始化时调用,望高手指点,感激不尽~~~
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ctstart 2011-11-04
  • 打赏
  • 举报
回复
哦!!谢谢啦!!!
九个太阳2023 2011-11-04
  • 打赏
  • 举报
回复
我的BSP里是这样赋值的:
g_pOemGlobal->pfnEnumExtensionDRAM = OEMEnumExtensionDRAM;
然后在BSP里有这两个函数:

static DWORD OEMEnumExtensionDRAM(
PMEMORY_SECTION pMemSections,
DWORD cMemSections)
{
DWORD cSections = 0;

//OALMSG(OAL_INFO, (L"[OAL]++OEMEnumExtensionDRAM\r\n"));
OALMSG(OAL_INFO, (L"[OAL]++OEMEnumExtensionDRAM\r\n"));
OALMSG(OAL_INFO, (L" cMemSections = %d \r\n",cMemSections));


if (cSections < cMemSections)
{
// DRAM0 Area
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = DRAM0_BASE_CA_START; //0x88000000

pMemSections[cSections].dwLen = ONEDRAM_EXTSIZE_FOR_AP;
OALMSG(OAL_INFO, (L" DRAM0_BASE_CA_START = 0x%x \r\n",DRAM0_BASE_CA_START));
OALMSG(OAL_INFO, (L" pMemSections[cSections].dwStart = 0x%x \r\n",pMemSections[cSections].dwStart));
OALMSG(OAL_INFO, (L" Extension Size = 0x%x \r\n",pMemSections[cSections].dwLen));
cSections++;


// Extra DRAM1 Area 0x48000000, 106MB
pMemSections[cSections].dwFlags = 0;
pMemSections[cSections].dwStart = DRAM_EXTRA_BASE_CA_START; //0x99600000
pMemSections[cSections].dwLen = DRAM_EXTRA_SIZE;
OALMSG(OAL_INFO, (L" DRAM1_EXTRA_BASE_CA_START = 0x%x \r\n",DRAM_EXTRA_BASE_CA_START));
OALMSG(OAL_INFO, (L" pMemSections[cSections].dwStart = 0x%x \r\n",pMemSections[cSections].dwStart));
OALMSG(OAL_INFO, (L" Extension Size = 0x%x \r\n",pMemSections[cSections].dwLen));
cSections++;
}

OALMSG(OAL_INFO, (L"[OAL] --OEMEnumExtensionDRAM\r\n"));
return cSections;
}

BOOL
OEMGetExtensionDRAM( LPDWORD lpMemStart, LPDWORD lpMemLen )
{
OALMSG(OAL_INFO, (L"[OAL]++OEMGetExtensionDRAM\r\n"));

*lpMemStart = 0x88000000;
*lpMemLen = 0x08000000;

OALMSG(OAL_INFO, (L"[OAL]--OEMEnumExtensionDRAM\r\n"));
return TRUE;
}
ctstart 2011-11-04
  • 打赏
  • 举报
回复
我的pNKEnumExtensionDRAM指针确定初始化了,但就是调不到OEMEnumExtensionDRAM这个函数。另有个问题就是我在编译的时候会提示pNKEnumExtensionDRAM没有定义,所以我在BSP将pNKEnumExtensionDRAM指针的定义又给写了进去,这样会不会有问题啊!pNKEnumExtensionDRAM指针不是全局的吗,为啥我编译bsp的时候会说没有定义啊~

求教!!谢谢!!
九个太阳2023 2011-11-04
  • 打赏
  • 举报
回复
是的!
ctstart 2011-11-04
  • 打赏
  • 举报
回复
那是在OEM初始化的时候调用的吗?
九个太阳2023 2011-11-04
  • 打赏
  • 举报
回复
如果指针赋值了,应该会调用的!
不然就是调用OEMGetExtensionDRAM这个函数,你看看吧
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

19,523

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧