【IDA】分析 Windows CE 事件日志服务(一)

Windows CE系统级日志设计 我的经验,可靠的产品不是设计出来的,而是通过持续的解决BUG逐步达到的,当然我不是说设计不重要,我是想强调在产品中提供一些能够帮助诊断问题的设施是非常有必要的。在这方面,最常见的手段显然就是系统日志了。嵌入式系统由定制的硬件平台、定制的驱动程序、定制的系统组件,以及定制的应用程序构成。这么多定制的组件凑在一起,要在一个比较短的时间内把他们凑在一起,配合良好顺利运行不容易。他们中的任何部分都 阅读详情

笔者在开始使用 Windows CE 事件日志服务时,由于自身条件限制未能获得 Microsoft 的技术支持,故只能使用 IDA Pro 对 eventlog.dll 进行分析。

笔者感觉事件日志服务相关的注册表设置可能对嵌入式系统软件工程师比较有用,所以注重分析 StartAllLoggers、InitFormattersAndOutputters、CLogEventLog::Initialize 和 CLogHandle::AssociateEventLog 等函数/方法。

StartAllLoggers 函数

eventlog.dll 的导出函数 EventLogStart 在 .text:10001B3A 调用函数 EventLogWorkerThread;然后,函数 EventLogWorkerThread 在 .text:100030FA 调用本函数。

.text:10002CC8 ;  int  __cdecl StartAllLoggers( void )
.text:10002CC8 
? StartAllLoggers@@YAHXZ proc near       ; CODE XREF: EventLogWorkerThread( void   * ) + 15
.text:10002CC8
.text:10002CC8 szName          
=  word ptr  - 218h
.text:10002CC8 pReg            
=  dword ptr  - 10h
.text:10002CC8
.text:10002CC8                 push    ebp
.text:10002CC9                 mov     ebp, esp
.text:10002CCB                 sub     esp, 218h
.text:10002CD1                 push    ebx
.text:10002CD2                 push    esi
.text:10002CD3                 push    edi
.text:10002CD4                 push    offset 
?? _C@_1EE@DKEDOPGO@ ? $AAS ? $AAY ? $AAS ? $AAT ? $AAE ? $AAM ? $AA ? 2 ? $AAC ? $AAu ? $AAr ? $AAr ? $AAe ? $AAn ? $AAt ? $AAC ? $AAo ? $AAn ? $AAt ? $AAr ? $AAo@ ;  " SYSTEM/CurrentControlSet/EventLog "
.text:10002CD9                 push    HKEY_LOCAL_MACHINE
.text:10002CDE                 lea     ecx, [ebp
+ pReg]
.text:10002CE1                 call    
?? 0CReg@@QAE@PAUHKEY__@@PBG@Z ; CReg::CReg(HKEY__  * , ushort   const   * )
.text:10002CE6                 xor     ebx, ebx
.text:10002CE8                 cmp     [ebp
+ pReg], ebx
.text:10002CEB                 jz      loc_10002E7A
.text:10002CF1                 push    g_pvAllocData   ; pvData
.text:10002CF7                 push    
20
.text:10002CF9                 pop     esi
.text:10002CFA                 push    esi             ; iSize
.text:10002CFB                 call    g_funcAlloc
.text:10002D01                 cmp     eax, ebx
.text:10002D03                 pop     ecx
.text:10002D04                 pop     ecx
.text:10002D05                 jz      
short  loc_10002D1D
.text:10002D07                 push    esi
.text:10002D08                 push    offset 
? DeleteEntry@CLogEventLog@@SAXPAX@Z ; CLogEventLog::DeleteEntry( void   * )
.text:10002D0D                 push    
52
.text:10002D0F                 mov     ecx, eax
.text:10002D11                 call    
?? 0SVSLinkManager@@QAE@KP6AXPAX@ZK@Z ; SVSLinkManager::SVSLinkManager( ulong , void  ( * )( void   * ), ulong )
.text:10002D16                 mov     
? g_pEventLogList@@3PAVSVSLinkManager@@A, eax ; SVSLinkManager  *  g_pEventLogList
.text:10002D1B                 jmp     
short
[IL2CPP逆向] 某立志传 - 脱离Steam运行 游戏是Unity游戏,但是用了il2cpp,非mono编译,只看GameAssembly.dll,dnspy可以pass掉了。IDA Pro先用Il2CppDumper 把游戏符号Dump出来,接着IDA配合CE调试分析。 阅读详情

相关推荐

Windows CE系统全面开发经典教程

本文还有配套的精品资源,点击获取 简介:Windows CE是微软开发的嵌入式操作系统,具备模块化和可裁剪特性,适用于多种设备。本经典教程涵盖开发、配置和管理Windows CE系统的全面知识,核心知识点包括系统架构、设备驱动程序开发、应用程序开发、平台构建系统、网络和通信、安全性、系统更新和维护、用户界面设计、调试技巧及性能优化。教程通过实例和实战项目帮助读者深入理解Wi...

weixin_32312889的博客 2638

WINDOWS系统日志导出工具及使用方法

(转)日志对于操作系统来说其重要性时不言而喻的,一个优秀的nt网络的管理员,往往会定期的备份系统日志,以备查询服务器运行状况及系统安全状况。 如果利用系统日志的“另存为”功能手工备份,则比较麻烦,而且输出的日志难以实现格式化输出,微软的resource kit工具包中有一个免费的查看本地或远程日志的小工具dumpel.exe,利用它可以把日志存为文本文件以备后需,在这里我利用windows脚本编程来实现定期备份并格式化输出html文件,如果条件许可,可以直接转储到打印机上打印。下面是具体的实现方法。 windows脚本编程包括vbscript和javascript,这也是网页特效编程中常见的语言,实际上利用vbs和js强大的系统和网络管理功能,可以使系统管理员简化很多工作的。

wince下面的日志库

专门用于记录wince的日志库,很方便好用!

逆向分析三件套CE+OD+IDA

软件逆向分析工具包:CE用来定位数据,OD用来动态调试,IDA用来看代码 懂得自然懂

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 517

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 991

VisionPro - 基础 - 模板匹配技术-Search/PMAlign/PatMax(6)-纹理屏蔽和重叠匹配

Note:对已经有了,1已经训练好的模板,2一组使能的自由度,3一个待测的实时图片,PatMax 就能模板匹配的给出变化的最佳描述。对一些综合的模板,这三个输入值往往是一起影响最后的变换结果信息。例如,如果我们训练了一个圆形的模板,然后搜索一个角度自由度包括一个圆,那么将会有无限个可能的角度满足要求。这些组合的模板匹配,被官方名为:退化系统,a degenerate system的结果被叫做a degenerate result 退化结果4.2 退化系统例子。

山云的专栏 1532

基于SC、SCL、BP、SCAN和SSC的译码算法及Matlab代码

本文将介绍几种常见的译码算法,包括SC(Successive Cancellation)、SCL(Successive Cancellation List)、BP(Belief Propagation)、SCAN(Soft-Input Soft-Output Successive Cancellation)、SSC(Stacked Successive Cancellation)的原理,并提供相应的Matlab代码实现。以上是基于SC、SCL、BP、SCAN和SSC的译码算法的Matlab代码示例。

ByteWhisper的博客 944

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2029

fbx bip互转 测试OK

fbx bip互转

jacke121的专栏 516

PCL 三维重建 泊松曲面重建算法

本文介绍了基于泊松曲面重建算法的三维重建过程。泊松重建是一种利用点云数据生成三维表面的算法,它基于点云的法线估计和泊松方程的求解,能够生成光滑且连续的曲面模型。该方法适用于复杂形状和细节的表面重建。

纵马踏花向自由 1090

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 【SSCE】使用 sqlceer30CN.dll 的字符串表生成事件消息文件
下一篇: 【WCE】显示器电源管理 (Standard Shell)
keyssoft
博客等级 码龄25年 8粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值