请问能详细解释一下PE文件里的DOS stub吗?内详,无限感谢..

cracking 2003-09-12 03:13:07
本人对汇编和DOS的可执行文件不了解...如果问题中某些术语搞错了还请多包涵。。
我的问题有
1.怎样提取DOSstub出来才能使其正常运行?我把这一段字符提取出来保存成.exe文件,可以运行,但是出现好多乱码,不过其中还是包含着This program cannot be run in MS-DOS mode的字样
2.能告诉我MZ header结构的定义吗?我只找到了MZ header最后那一部分(MZheader的后40字节)的定义
3.能从汇编代码解释一下1里面提取出来的代码吗?用什么反汇编?(Hiew是不是在win2k里不能用?)

4.这里给分只能给100分吗?我来的少,不是很清楚,如果可以多给的话请告诉我,我会多给分的。。虽然我只有几百分..

多谢了..
...全文
228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2003-09-15
  • 打赏
  • 举报
回复
应该从DOS文件头的30H取得PE文件头的位置
cracking 2003-09-13
  • 打赏
  • 举报
回复
不错,我正在看,多谢了.
Tiangua 2003-09-13
  • 打赏
  • 举报
回复
mz header的定义到处都是!!!!!
尤其是以前的关于病毒的教程。。。

http://chulsoft.xiloo.com/tech/xuexi_dos_virus.htm
cracking 2003-09-12
  • 打赏
  • 举报
回复
msdn我还没看,vc的头文件里我只找到了MZ Header后40个字节的定义,还请指教前24个字节的定义在哪里........

另外,只将PE\0\0前的保留成一个文件(我保存的是exe)仿佛不行,我的浅显理解是他从B0 00 00 00找到了PE\0\0的位置,确没有从B0h的位置找到PE\0\0,结果报告非法的win32程序,我没有能力从汇编角度来看这个文体,还请大侠多多指教........
Areslee 2003-09-12
  • 打赏
  • 举报
回复
MZ格式MSDN中有文档,也可以查VC的头文件
对于PE的STUB你只要将PE\0\0前的全部内容取出作为一个文件就可以运行
cracking 2003-09-12
  • 打赏
  • 举报
回复
00000000h: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 ; MZ?..........
00000010h: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ; ?......@.......
00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 B0 00 00 00 ; ............?..
00000040h: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 ; ..?.???L?Th
00000050h: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F ; is program canno
00000060h: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 ; t be run in DOS
00000070h: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 ; mode....$.......
00000080h: 5D 65 FD C8 19 04 93 9B 19 04 93 9B 19 04 93 9B ; ]e..摏..摏..摏
00000090h: 97 1B 80 9B 11 04 93 9B E5 24 81 9B 18 04 93 9B ; ?€?.摏?仜..摏
000000a0h: 52 69 63 68 19 04 93 9B 00 00 00 00 00 00 00 00 ; Rich..摏........

贴出来一个MZ Header + DOS stub ,使您帮助我的时候稍稍方便一点,//鞠躬
前4行是MZ Header
后面是DOS stub
上面这段文字后面就是PE\0\0了

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧