当前位置:网站首页>逆向调试入门-PE结构-资源表07/07
逆向调试入门-PE结构-资源表07/07
2022-07-04 12:45:00 【51CTO】
资源表:
PE中的相关资源可以通过程序进行深度定位,所获取的二进制字节码与资源脚本语句之间是一一对应的。
这些数据可能是源代码内部需要用到的常景,比如 菜单选项、界面描述等;也可能是源代码外部的,比如程序的图标文件、背景音乐文件、配置 文件等,以上这些数据统称为资源。

常见的资源
程序中常用的六类资源包括:
1、位图资源
2、光标资源
3、图标资源
4、菜单资源
5、对话框资源
6、自定义资源

结构体:
资源目录结构
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
union {
struct {
DWORD NameOffset : 31; //资源名偏移
DWORD NameIsString : 1; //资源名为字符串
};
DWORD Name; //资源/语言类型
WORD Id; //资源数字ID
};
union {
DWORD OffsetToData; //数据偏移地址
struct {
DWORD OffsetToDirectory : 31; //子目录偏移地址
DWORD DataIsDirectory : 1; //数据为目录
};
};
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
我们使用工具进行实验
工具有
1、360zip程序
2、resource hacker或者是exescope
3、stud_pe

首先我们查看PE资源表

有9个资源组

第一个资源表

我们进行观察下

我们对该程序的资源表有个大概的了解之后

使用resource 打开该程序

我们对菜单的功能进行修改

文件会模拟出菜单选项

将一级菜单改掉

将二级菜单中的打开文件操作,修改下名称

选择编译脚本

文件另存为

该文件,如果直接打开

我们将文件放到程序目录

一个是正版,一个是我们修改之后的程序(壳)

正常画面

修改之后的画面

修改成功。
由于PE结构中资源表一层套一层。难以手动分析,所以使用工具是最佳选择。
边栏推荐
- Interviewer: what is the difference between redis expiration deletion strategy and memory obsolescence strategy?
- Iptables foundation and Samba configuration examples
- Introduction to XML II
- C语言程序设计选题参考
- .NET 使用 redis
- Agile development / agile testing experience
- 爬虫练习题(一)
- C language Dormitory Management Query Software
- C语言中学生成绩管理系统
- PostgreSQL 9.1 飞升之路
猜你喜欢

Flet教程之 03 FilledButton基础入门(教程含源码)(教程含源码)

字节面试算法题

Runc hang causes the kubernetes node notready

【云原生 | Kubernetes篇】深入了解Ingress(十二)

SQL statement syntax error in test SQL statement deletion in eclipse linked database

DGraph: 大规模动态图数据集

CA: efficient coordinate attention mechanism for mobile terminals | CVPR 2021

Annual comprehensive analysis of China's mobile reading market in 2022

8 expansion sub packages! Recbole launches 2.0!

Meituan Ali's Application Practice on multimodal recall
随机推荐
实战:fabric 用户证书吊销操作流程
高质量软件架构的唯一核心指标
C#基础补充
WPF双滑块控件以及强制捕获鼠标事件焦点
三星量产3纳米产品引台媒关注:能否短期提高投入产出率是与台积电竞争关键
Solution: how to delete the information of Jack in two tables with delete in one statement in Oracle
Scripy framework learning
WPF double slider control and forced capture of mouse event focus
. Net using redis
C language staff management system
ViewBinding和DataBinding的理解和区别
PostgreSQL 9.1 soaring Road
聊聊支付流程的设计与实现逻辑
Talk about the design and implementation logic of payment process
老掉牙的 synchronized 锁优化,一次给你讲清楚!
一个数据人对领域模型理解与深入
Zhongang Mining: in order to ensure sufficient supply of fluorite, it is imperative to open source and save flow
Excuse me, have you encountered this situation? CDC 1.4 cannot use timestamp when connecting to MySQL 5.7
请问大佬们有遇到这个情况吗,cdc 1.4 连接MySQL 5.7 无法使用 timestamp
AI painting minimalist tutorial