首页
社区
课程
招聘
[原创]发一个我写的简单PE结构解析工具
发表于: 2011-4-22 23:21 9804

[原创]发一个我写的简单PE结构解析工具

2011-4-22 23:21
9804

最近一段时间看了PE文件结构,于是打算自己模仿LordPE写一个小工具,于是就有了本程序。
程序还不完善,也不是很好。主要是拿来和大家分享一下,供像我一样入门的朋友交流学习。

程序实现了IMAGE_DOS_HEADER、IMAGE_NT_HEADERS的解析,另外还有节表头、输入表、输出表的解析,时间标志信息的转换,RVA和文件便宜的转换,还有一个进程列表的显示。

注意,本程序没有编辑功能。

进程列表也仅仅是显示,而且是通过创建进程快照实现的,所以对于一些进程可能无法获取基址、镜像大小、以及模块列表(是不是要用Native API才行呢?)

就这么多吧,另外在写这个程序的过程中,我把一些心得发布在我的博客上面。博客地址详见程序的关于对话框。

我觉得最关键的地方还是理解RVA的意义,完成RVA和Offset的转换,其他的地方只是读文件做一个结构解析。
好了,贴几张图吧。

后话:写个LordPE完全不是什么难事,只要你能够静下心来写,静下心来学习不懂的地方。加上反汇编、16进制编辑器、dump、文件对比等都不是难事。有兴趣的朋友可以尝试一下,我也会继续改进这个小东西。








好了,轮到源码了 O(∩_∩)O~


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 601
活跃值: (256)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
2
也准备学习,及时
2011-4-22 23:31
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最近也正想写个这东西  练练手
不过Win32编程实在不会,参考下楼主的代码,顺带学习这方面只是了
多谢
2011-4-23 00:17
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢lz

3q
2011-4-23 09:30
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
源码的话一定要顶了,不过第一个图和LORDPE好像啊
2011-4-23 09:35
0
雪    币: 1259
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stu
6
嗯,这个不错。
2011-4-23 09:40
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
强!感谢分享!
2011-4-23 16:19
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
8
呵呵,上面说了界面模仿了LordPE
2011-4-23 20:18
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
9
不合适吧。。。
case IDC_BTN_COPYANDCLOSE:
// 复制到剪贴板
if (OpenClipboard(hwndDlg) && EmptyClipboard())
{
//获取数据
HGLOBAL hMem;
hMem = GlobalAlloc(GMEM_MOVEABLE,
(lstrlen(szTimeMask) + sizeof(szTimeMask[0])) * sizeof(szTimeMask[0]));
PVOID pBuff = (PVOID)GlobalLock(hMem);
memcpy(pBuff, szTimeMask,
(lstrlen(szTimeMask) + sizeof(szTimeMask[0])) * sizeof(szTimeMask[0]));
GlobalUnlock(hMem);

//设置数据到剪贴板
SetClipboardData(CF_UNICODETEXT, hMem);

//关闭剪贴板
CloseClipboard();
}
// 关闭窗体
SendMessage(hwndDlg, WM_CLOSE, 0, 0);
return TRUE;
2011-4-23 21:00
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
10
不当之处还请指正,剪贴板这里我是在网上找了段代码改的。
2011-4-23 22:07
0
雪    币: 777
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享。。
2011-4-28 10:17
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,感谢楼主分享
2011-4-29 18:27
0
游客
登录 | 注册 方可回帖
返回
//