社区
进程/线程/DLL
帖子详情
如何象提取图标一样从EXE,DLL中提取字符串?
CloudWater
2004-04-14 01:01:01
如题
...全文
164
6
打赏
收藏
如何象提取图标一样从EXE,DLL中提取字符串?
如题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xstring
2004-04-14
打赏
举报
回复
用EnumResource*这一系列的函数先枚举资源(先EnumResourceLanguages, 再EnumResourceType, 再EnumResourceNames)
找出RT_STRING这个类型的资源
之后FindResource,LoadResource, LockResource
这时候可以得到一个指针,指向字符串资源
RT_STRING这种资源是这么存的
16个连续id的字符串存成一个RT_STRING
字符串的id和RT_STRING资源的id有这样一个对应关系
string id(字符串资源的id) resource id(RT_STRING资源的id)
0x0000 ~ 0x000f 1
0x0010 ~ 0x001f 2
0x0020 ~ 0x002f 3
也就是说id 为 x 的RT_STRING资源内存放的字符串的id范围是从 x * 16 - 16 到 x * 16 - 1
RT_STRING中是16个变长结构体
struct string_block
{
unsigned short length; // sz的长度,按字符计
wchar_t sz [0]; // 不含\0字符
};
比方说
void *ptr = LockResource (); // ptr指向RT_STRING资源
string_block *pstr = (string_block *)ptr; // pstr指向RT_STRING中第一个字符串
ptr = (string_block *)(char *)ptr + sizeof (string_block) + ptr->length + sizeof (wchar_t); // 现在ptr指向RT_STRING中第二个字符串资源。
然后你这样遍历,直到扁历够16个,这个RT_STRING的所有字符串就全遍历到了。
如果ptr->length值为0表明其对应字符串ID的字符串资源不存在。
vcforever
2004-04-14
打赏
举报
回复
先看看PE文件结构方面的资料,只有了解了PE文件的结构才可以自己实现导出字符串!
ColderRain
2004-04-14
打赏
举报
回复
那你就的读PE格式的EXE文件了。
CloudWater
2004-04-14
打赏
举报
回复
现在不知道字符串ID的情况下全部读出来,如何做?
ColderRain
2004-04-14
打赏
举报
回复
int LoadString(
HINSTANCE hInstance, // handle to resource module
UINT uID, // resource identifier
LPTSTR lpBuffer, // resource buffer
int nBufferMax // size of buffer
);
rivershan
2004-04-14
打赏
举报
回复
读资源咯~
程序
图标
提取
器(从
dll
中
提取
图标
)
可以从系统不同的
dll
中
提取
图标
。非常实用!
提取
exe
dll
中
的
图标
提取
exe
dll
中
的
图标
推荐一款
图标
提取
器,可以
提取
出
exe
,
dll
中
的
图标
.zip
推荐一款
图标
提取
器,可以
提取
出
exe
,
dll
中
的
图标
.zip
ico
图标
修改
exe
格式等等很多
提取
修改
dll
可以修改
exe
图标
,很自由的。省时间,很有个性 已经绿色了。希望大家支持俺一下。欢迎您使用哟
VB
提取
DLL
,
EXE
文件
中
的
图标
100%代码分享。VB
提取
DLL
,
EXE
等文件
中
的
图标
。(海量系统
图标
),解决工程项目时找
图标
的麻烦。
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章