首页
社区
课程
招聘
研究NotePad时发现的问题!
发表于: 2005-7-6 22:32 7094

研究NotePad时发现的问题!

2005-7-6 22:32
7094
今性趣来了,把Windows自带的NotePad拿来出跟踪,想进一步有所了解。
但有点不明白。为什么一开始的时间程序就自身检查MZ和PE这些东西哇?如果不是这些那程序就可能运行了吧。
难道notepad还能在其它的什么平台上运行???
望高人指点一二。。。

0100739D >/$  6A 70                push    70
0100739F  |.  68 98180001          push    NOTEPAD.01001898
010073A4  |.  E8 BF010000          call    NOTEPAD.01007568
010073A9  |.  33DB                 xor     ebx, ebx
010073AB  |.  53                   push    ebx                                         ; /pModule => NULL
010073AC  |.  8B3D CC100001        mov     edi, dword ptr ds:[<&KERNEL32.GetModuleHand>; |kernel32.GetModuleHandleA
010073B2  |.  FFD7                 call    edi                                         ; \GetModuleHandleA
010073B4  |.  66:8138 4D5A         cmp     word ptr ds:[eax], 5A4D
010073B9  |.  75 1F                jnz     short NOTEPAD.010073DA
010073BB  |.  8B48 3C              mov     ecx, dword ptr ds:[eax+3C]
010073BE  |.  03C8                 add     ecx, eax
010073C0  |.  8139 50450000        cmp     dword ptr ds:[ecx], 4550
010073C6  |.  75 12                jnz     short NOTEPAD.010073DA
010073C8  |.  0FB741 18            movzx   eax, word ptr ds:[ecx+18]
010073CC  |.  3D 0B010000          cmp     eax, 10B
010073D1  |.  74 1F                je      short NOTEPAD.010073F2
010073D3  |.  3D 0B020000          cmp     eax, 20B
010073D8  |.  74 05                je      short NOTEPAD.010073DF
010073DA  |>  895D E4              mov     [local.7], ebx
010073DD  |.  EB 27                jmp     short NOTEPAD.01007406
010073DF  |>  83B9 84000000 0E     cmp     dword ptr ds:[ecx+84], 0E
010073E6  |.^ 76 F2                jbe     short NOTEPAD.010073DA
010073E8  |.  33C0                 xor     eax, eax
010073EA  |.  3999 F8000000        cmp     dword ptr ds:[ecx+F8], ebx
010073F0  |.  EB 0E                jmp     short NOTEPAD.01007400
010073F2  |>  8379 74 0E           cmp     dword ptr ds:[ecx+74], 0E
010073F6  |.^ 76 E2                jbe     short NOTEPAD.010073DA
010073F8  |.  33C0                 xor     eax, eax
010073FA  |.  3999 E8000000        cmp     dword ptr ds:[ecx+E8], ebx
01007400  |>  0F95C0               setne   al

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (28)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
2
最初由 ohuangkeo 发布
性趣来了,把Windows自带的NotePad拿来出跟踪,想进一步有所了解。
........
2005-7-6 22:46
0
雪    币: 153
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 ohuangkeo 发布
今性趣来了,把Windows自带的NotePad拿来出跟踪,想进一步有所了解。
但有点不明白。为什么一开始的时间程序就自身检查MZ和PE这些东西哇?如果不是这些那程序就可能运行了吧。
难道notepad还能在其它的什么平台上运行???
望高人指点一二。。。

........
2005-7-6 22:51
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
4
就知道笑人家,人家的问题都还没回答呢!
2005-7-6 22:59
0
雪    币: 390
活跃值: (707)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
5
最初由 KuNgBiM 发布


可以推出这位老兄经常上什么网站……
2005-7-7 09:46
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
6


PE结构的基本标志。
只要符合“MZ”和“PE”的才是可执行文件。
2005-7-7 10:17
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
7
最初由 firstrose 发布


可以推出这位老兄经常上什么网站……


啥网站?网执发上来
2005-7-7 13:01
0
雪    币: 214
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
2005-7-7 14:42
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
9
6楼说

PE结构的基本标志。
只要符合“MZ”和“PE”的才是可执行文件。

但是,如果不符合"MZ"和"PE"的话,那么Windows是不会运行的哇!
2005-7-7 14:53
0
雪    币: 229
活跃值: (168)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
最初由 ohuangkeo 发布
6楼说

PE结构的基本标志。
只要符合“MZ”和“PE”的才是可执行文件。

........


各位别净开玩笑,到底有明白的没?我也想听听答案!
2005-7-7 15:21
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
11
没人看还是没人懂哇?
2005-7-7 19:27
0
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
12
启动代码而已
2005-7-8 14:18
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
13
.EXE文件启动代码当然要先检测文件是否有效,而"MZ"和"PE"正是标志.
如果想再要具体的话,参考相关资料:PE结构,加载器原理之类
2005-7-8 21:58
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
兴趣和性趣
2005-7-8 22:29
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
15
你可能跟的不是notepad本身的内容,而是跟到了系统的PE加载器里,系统在加载EXE的时候是要判断这些的,我曾经也跟到过这些东西.

静态反汇编notepad.exe,看一看有没有那些内容那知道了.
2005-7-8 22:33
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
恭喜ROBA成为版主!
2005-7-8 22:36
0
雪    币: 199
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
最初由 RoBa 发布
你可能跟的不是notepad本身的内容,而是跟到了系统的PE加载器里,系统在加载EXE的时候是要判断这些的,我曾经也跟到过这些东西.

静态反汇编notepad.exe,看一看有没有那些内容那知道了.


拜托你看看再说话
2005-7-9 00:29
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
18
微软就喜欢耍这些小把戏,搞得人晕头转向的。
2005-7-9 00:55
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
19
最初由 playar 发布


拜托你看看再说话


嘿嘿,刚开始我也想说,后来没看,就没敢说
2005-7-9 09:36
0
雪    币: 207
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
我看过几个Windows自带的程序都这样,(画图,注册表)
2005-7-9 09:40
0
雪    币: 142
活跃值: (278)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
21
他一开始在判断MZ和PE我是不知道做什么啦,不过后面的是判断Magic
2005-7-9 11:54
0
雪    币: 207
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
有个猜想,这些会不会与XP的系统文件保护机制有关。

很多的Windows自带的exe程序的基址都是1000000。而dll则五花八门,不是“标准”的10000000
2005-7-9 18:52
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
23
最初由 nbw 发布



嘿嘿,刚开始我也想说,后来没看,就没敢说


嘿嘿,偶回贴不看贴被BS了~~~

看了看,什么也没看出来,MS就是说让它没有也能执行下去,如果你把MZ或PE改一下的话,会发现经过很短的时间就会又恢复正常,不知道XP在搞什么,甚至如果把notepad.exe移出windows目录,过很短时间后windows下又会出现一个notepad.exe,汗……好像对系统目录下面所有EXE和DLL都是这样的,以后想对系统动手脚还不太方便了呢……
2005-7-10 05:29
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
MS的系统现在已经很难修改了~
花费的时间已经远远超过了欣赏它的时间了~
2005-7-10 09:35
0
雪    币: 207
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
最初由 RoBa 发布


嘿嘿,偶回贴不看贴被BS了~~~

看了看,什么也没看出来,MS就是说让它没有也能执行下去,如果你把MZ或PE改一下的话,会发现经过很短的时间就会又恢复正常,不知道XP在搞什么,甚至如果把notepad.exe移出windows目录,过很短时间后windows下又会出现一个notepad.exe,汗……好像对系统目录下面所有EXE和DLL都是这样的,以后想对系统动手脚还不太方便了呢……


这个就是XP的系统文件保护!
在\WINDOWS\system32\dllcache目录下全是系统文件备份!
你可以在组策略中对系统文件保护做些设置。
2005-7-10 12:21
0
游客
登录 | 注册 方可回帖
返回
//