首页
论坛
课程
招聘
雪    币: 1324
活跃值: 活跃值 (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝

[系统底层] [原创]LoadIcon中定位icon文件

2020-2-25 00:06 1055

[系统底层] [原创]LoadIcon中定位icon文件

2020-2-25 00:06
1055
参考文章  https://bbs.pediy.com/thread-203675.htm
由于参考文章内还有基础知识,本文不再介绍
win10系统
首先准备一个sdk程序,在vwinmain 中首先调用loadicon   加载id为idi_small 即0x6c 在resource.h 中定义得图标id
od载入  该函数传递了俩个参数,进程实例句柄和资源id
此处直接在资源表va处下内存访问断点,因为loadicon必然要访问资源表信息,此时得知资源共有7个子项
对该7项进行二分查找 对比类型 ,若类型相等则取 IMAGE_RESOURCE_DIRECTORY_ENTRY 中的 DUMMYSTRUCTNAME2 字段


若该字段最高位为1,则为目录项

去掉目录项  再加上当前节基址  得到二级目录地址  0041e148
此时逻辑与以上相同,取出二级目录下项的个数2 ,分别对别传入的id是否相等,
若id相等 则 取出当前对比项得地址
并取出该项得 IMAGE_RESOURCE_DIRECTORY_ENTRY 中的 DUMMYSTRUCTNAME2 字段  发现又是0x41e390又是目录项
再次对 0x 41e390 做以上分析 先取项数 在 发现只有一项 判断是不是目录项 不是目录项
计算出存放数据得地址  0041e538
对 0041e538 下内存访问断点  取出icon文件在内存中的rva  ,并计算va
函数返回  猜测该函数是获取资源文件在内存中得映射
以上知 00429b88 为 icon资源映射  对00429b88下内存访问断点
以下猜测是icon文件解析 不懂 暂未分析  时间匆忙,有错误请留言哦

HWS计划·2020安全精英夏令营来了!我们在华为松山湖欧洲小镇等你

最新回复 (2)
雪    币: 40
活跃值: 活跃值 (37)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 活跃值 2 2020-2-25 16:14
2
0
已读
雪    币: 4774
活跃值: 活跃值 (2520)
能力值: (RANK:65 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2020-2-26 16:22
3
0
若能来些文字描述更好了,感谢分享!
游客
登录 | 注册 方可回帖
返回