fire2fire
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2013-04-07
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2005-02-13 13:18
用IDA的16位模式分析吧

seg000:0000 ; Segment type: Pure code
seg000:0000 seg000 segment byte public 'CODE' use16
seg000:0000     assume cs:seg000
seg000:0000     assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
seg000:0000     jmp loc_1C6
seg000:0000 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0003 aRSh db 'RSh',0
seg000:0007 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0007
seg000:0007 loc_7:                                  ; CODE XREF: seg000:FFDEj
seg000:0007     pusha
seg000:0008     pop es
seg000:0009     xor bx, bx
seg000:000B     mov cx, [si+3]                      ; DATA XREF: seg000:450Cr
seg000:000B                                         ; seg000:BE43r
seg000:000E     mov word ptr [di+0Ah], 0
seg000:0013     mov [di+8], cx
seg000:0016     mov ax, [si+0Bh]
seg000:0019     cmp ax, 80h ; '
fire2fire
驱动牛犊
驱动牛犊
  • 注册日期2004-03-04
  • 最后登录2013-04-07
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2005-02-13 13:20
loc_1C6:                                ; CODE XREF: seg000:0000j
seg000:01C6                                         ; seg000:005Fj
seg000:01C6     mov bx, 2F20h
seg000:01C9     shr bx, 4
seg000:01CC     mov ax, cs
seg000:01CE     add ax, bx
seg000:01D0     mov ss, ax
seg000:01D2     assume ss:nothing
seg000:01D2     mov sp, 1528h
seg000:01D5     push dx
seg000:01D6     mov ds, ax
seg000:01D8     assume ds:nothing
seg000:01D8     mov es, ax
seg000:01DA     assume es:nothing
seg000:01DA     movzx edx, ax
seg000:01DE     shl edx, 4
seg000:01E2     add edx, 1D80h
seg000:01E9     mov ds:0CBEh, edx
seg000:01EE     xor bp, bp
seg000:01F0     movzx ebp, bp
seg000:01F4     movzx esp, sp
seg000:01F8     mov word ptr ds:15BCh, ds
seg000:01FC     call loc_1900
seg000:01FF
seg000:01FF ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
seg000:01FF
seg000:01FF
seg000:01FF sub_1FF proc far                        ; CODE XREF: seg000:0648p
seg000:01FF                                         ; seg000:071Fp ...
seg000:01FF     push large 0
seg000:0205     popfd
seg000:0207     mov bx, sp
seg000:0209     mov dx, [bx+2]
seg000:020C     xor ax, ax
seg000:020E     mov gs, ax
seg000:0210     assume gs:seg000
seg000:0210     mov es, ax
seg000:0212     assume es:seg000
seg000:0212     push 30h ; '0'
seg000:0214     pop fs
seg000:0216     assume fs:nothing
seg000:0216     cli
seg000:0217     lgdt qword ptr ds:15A8h
seg000:021C     lidt qword ptr ds:15B0h
seg000:0221     mov si, 1D6Ch
seg000:0224     mov word ptr [si+2], 68h ; 'h'
seg000:0229     mov si, 1D68h
seg000:022C     mov word ptr [si+2], 68h ; 'h'
seg000:0231     mov eax, cr0
seg000:0234     or  dx, dx
seg000:0236     jz  loc_247
seg000:023A     or  eax, 80000001h
seg000:0240     mov cr0, eax
seg000:0243     nop
seg000:0244     jmp short loc_253
seg000:0244 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0246     db  90h ; ?
seg000:0247 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0247
seg000:0247 loc_247:                                ; CODE XREF: sub_1FF+37j
seg000:0247     or  eax, 1
seg000:024B     mov cr0, eax
seg000:024E     xchg bx, bx
seg000:0250     jmp short loc_253
seg000:0250 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0252     db  90h ; ?
seg000:0253 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0253
seg000:0253 loc_253:                                ; CODE XREF: sub_1FF+45j
seg000:0253                                         ; sub_1FF+51j
seg000:0253     push 58h ; 'X'
seg000:0255     push 259h
seg000:0258     retf
seg000:0259     mov ax, 60h ; '`'
seg000:025C     mov ds, ax
seg000:025E     assume ds:nothing
seg000:025E     mov ss, ax
seg000:0260     assume ss:nothing
seg000:0260     xor bx, bx
seg000:0262     lldt bx
seg000:0265     or  dx, dx
seg000:0267     jnz locret_271
seg000:026B     mov bx, 28h ; '('
seg000:026E     ltr bx
seg000:0271
seg000:0271 locret_271:                             ; CODE XREF: sub_1FF+68j
seg000:0271     retn
seg000:0271 sub_1FF endp
seg000:0271
seg000:0272
seg000:0272 ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
seg000:0272
seg000:0272 ; Attributes: bp-based frame
seg000:0272
seg000:0272 sub_272 proc near                       ; CODE XREF: sub_24DE+34p
seg000:0272                                         ; sub_24DE+4Bp ...
seg000:0272
seg000:0272 arg_0= dword ptr  4
seg000:0272
seg000:0272     enter 0, 0
seg000:0276     push di
seg000:0277     push si
seg000:0278     push ds
seg000:0279     push es
seg000:027A     les di, [bp+arg_0]
seg000:027D     assume es:nothing
seg000:027D     mov ax, es:[di]
seg000:0280     sub ax, 10h
seg000:0283     jnb short loc_28C
seg000:0285     mov word ptr es:[di], 0FFFFh
seg000:028A     jmp short loc_2DE
seg000:028C ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:028C
seg000:028C loc_28C:                                ; CODE XREF: sub_272+11j
seg000:028C     shl ax, 1
seg000:028E     cmp ax, 14h
seg000:0291     nop
seg000:0292     jb  short loc_29C
seg000:0294     mov word ptr es:[di+4], 0FFFFh
seg000:029A     jmp short loc_2DE
seg000:029C ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:029C
seg000:029C loc_29C:                                ; CODE XREF: sub_272+20j
seg000:029C     mov bx, ax
seg000:029E     mov ax, cs:[bx+30Ch]
seg000:02A3     push es
seg000:02A4     push di
seg000:02A5     push ax
seg000:02A6     mov ax, es:[di+4]
seg000:02AA     mov bx, es:[di+6]
seg000:02AE     mov cx, es:[di+8]
seg000:02B2     mov dx, es:[di+0Ah]
seg000:02B6     mov si, es:[di+0Ch]
seg000:02BA     mov es, word ptr es:[di+0Eh]
seg000:02BE     retn
ggamma
驱动小牛
驱动小牛
  • 注册日期2007-02-15
  • 最后登录2009-05-26
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望180点
  • 贡献值0点
  • 好评度99点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2007-02-20 11:13
1.  Open CMD

2.Goto C:
....>C:
...>cd \
c:>

3.open the ntld use debug

c:\debug ntldr
-

4. UnAsm
-u

....
....


一直u下去就能得到全部代码了。

__________________________________________________________________________


?????????????????????????????????????????????????????????

                                 
很有意思。为什么不更改boot.ini文件呢?不是比改ntldr要好,要不用实模式的asm
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2007-03-27 17:29
我看见过反汇编加分析的文章,但是现在找不到了
liming
驱动牛犊
驱动牛犊
  • 注册日期2001-06-12
  • 最后登录2010-02-21
  • 粉丝0
  • 关注0
  • 积分116分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2007-06-24 19:17
NTLDR里面好像一半代码是16位的,一半是32位的.
binsys
驱动牛犊
驱动牛犊
  • 注册日期2007-03-18
  • 最后登录2019-01-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望86点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
25楼#
发布于:2007-06-24 20:20
ntldr一共两部分,用winhex打开,搜索 mz ,把mz之前的保存为.com文件,后面的保存为.exe文件,然后反汇编,(如果有兴趣的话你可以看看nt的源代码阿〉)
ytmGring
驱动牛犊
驱动牛犊
  • 注册日期2007-09-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望11点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2007-09-30 00:55
关注中.....................
zhczf
驱动牛犊
驱动牛犊
  • 注册日期2007-02-05
  • 最后登录2021-11-30
  • 粉丝0
  • 关注0
  • 积分158分
  • 威望106点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
  • 社区居民
27楼#
发布于:2007-10-13 13:09
不懂这些东西,路过
gxm_nicholas
驱动牛犊
驱动牛犊
  • 注册日期2007-05-14
  • 最后登录2010-01-25
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2008-02-18 22:22
NTLDR不是PE格式的,NTLDR前面是含有引导代码的,所以前部分是用汇编写的,而且是处于实模式,而且它是由第0扇区里的代码来加载的,第0扇区又不认识PE
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
29楼#
发布于:2008-02-27 14:23
引用楼主walkonthesky于2004-05-19 16:27发表的 这里有谁分析过NTLDR?好像不是PE格式的文件,无法反汇编。 :
RT

我想修改NTLDR的启动菜单项,
可是无法正确反汇编,说不是PE格式文件


你要把起动菜单修改成什么? 修改成图片么?


bochs是可以跟踪调试,我试过,应当用bochs 装nt4, 2k要有命的人估计才等得装完
ytmGring
驱动牛犊
驱动牛犊
  • 注册日期2007-09-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望11点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2008-09-24 14:30
昨天睡觉前刚看了~
网上有
你找一下
利用NTLDR进入RING0相关 就可以找到
上一页 下一页
游客

返回顶部