punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
阅读:6028回复:28

NTLDR的源程序有没有?

楼主#
更多 发布于:2004-11-11 13:16
逆向有人搞过吗 :)
不停学习
zl21_spawn
驱动牛犊
驱动牛犊
  • 注册日期2004-03-18
  • 最后登录2005-05-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-23 10:03
小弟也在为此发愁,前几天小弟用bochs的调试器反汇编过,不过小弟的汇编能力实在是太太太太烂,正在恶补纯汇编
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-24 18:20
今天上网看到在泄露的nt4的原代码中有boot部分,我现在也很想得到,有的朋友能不能发给我一份,发给我boot部分也可以.
zl21_spawn@163.com
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-03 09:10
今天上网看到在泄露的nt4的原代码中有boot部分,我现在也很想得到,有的朋友能不能发给我一份,发给我boot部分也可以.
zl21_spawn@163.com

本站有下载
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-03 13:26
呵呵,我不是高会呀
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-03 13:31
ntldr 反汇编过一些,16位纯汇编,只是前面的一点点,后面就分析不下去了,主要是有些地址不明白存储的是什么东西
boly81
驱动小牛
驱动小牛
  • 注册日期2004-06-25
  • 最后登录2012-06-08
  • 粉丝0
  • 关注0
  • 积分490分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-14 15:42
国内有高手搞过 ,很好的,看过但是资料丢了
网上搜搜吧
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-14 18:23
这么多人研究NTLDR
Ideas for life!
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-15 09:29
paladinii有相关资料吗??
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-15 09:43
我也正在研究中。。。
Ideas for life!
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-03-15 13:05
哦?是吗?不知道已经分析到那里了,我只分析到了计算扩展内存的那里,后面有些地址就是不明白存储的是什么东西,咳,已经搁置好长时间了,我们可以交流一下吗??
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-03-15 13:32
现在只整理出来下面这一部分,第一次写东西也是第一次搞反汇编,请见谅:
在这篇分析的文挡中我并没有对ntldr进行全面的分析,只是动态调试的进行了分析。
请看反汇编后的代码:
jmp 0x1c6       这是第一句,上来就是一个跳转
mov bx,0x2ac0
shr bx,0x4
mov ax,cs
add ax,bx
mov ss,ax
mov sp,0x1528
push dx
mov ds,ax
mov es,ax       以上是对SS、DS、ES各段寄存器进行初始化,从中可以看出0x2ac即是代码段的大小,而CS=0x2000,所以SS=DS=ES=0x22ac,注意此时没有对FS段寄存器进行初始化。
movzx edx,ax
shl edx,0x4
add edx,0x1dd0
mov [0xcbe],edx
xor bp,bp
movzx ebp,bp
mov esp,sp
mov word ptr [0x15bc],ds
call 0x1a44      在此跟进
  
  enter 0x1c,0x0    建立堆栈桢
  push si
  mov al,ss[bp+04]  bp+04=0x80并不清楚这是什么数据,可能是BIOS留下的。
  mov byte ptr [0x15c4],al
  call 0x22cc       在此跟进

enter 0x14,0x0
sub bx,bx
mov es,bx
mov bx,0x410
mov [bp-14],bx
mov [bp-12],es
and byte ptr es:[bx],0xcf
byte ptr es:[bx],0x20    注意,在0x00410处存储的是由BIOS建立的“设备编码表“,and和or这两条语句用来打开某个设备。“设备编码表”的资料自行查找,在此不于给出,这段代码的意思即:将初始化显示方式表置为80列表文本方式(认为是彩色/图形适配器)
mov [bp-10],0x10                          
   dx
call 0x1a44
  ebp
Size(1c)
esp=0x1506
   si
call 0x22cc
ebp
ebp=0x1500Size(14)esp=0x14ec
0x301
0x1202

0x10
0x0
0x410
ss
ax esp=0x14e8
call 0x272
ebp
di
si
ds
es esp=0x14dc

mov [bp-0c],0x1202
mov[bp-0a],0x301
lea ax,ss:[bp-10]
call 0x272        在此个跟进
enter 0x0,0x0
push di
push si
push ds
push es
les di,[bp+04]     di=0x14f0指向ss:0x14e8
mov ax,es:[di]      ax=0x10 可能是个什么标志
sub ax,0x10
jnb 0x28c    高于或等于跳
shl ax,0x1    (0x28c)
cmp ax,0x14
nop
jb 0x29c    低于或等于跳
mov bx,ax
mov ax,word ptr cs:[bx+030c]   ax=0x2e4
push es
push di
push ax  
mov ax,es:[di+04]
mov bx,es:[di+06]
mov cx,es:[di+08]
mov dx,es:[di+0a]
mov si,es:[di+0c]
mov es,es:[di+0e]
ret           技术跳转  int10的地址就是0x2e4
int 0x10    对于这个中断调用不是太熟悉,参数不明,可能是用来获取“视频子系统[配置”的信息,如果哪位高手有相关资料请与我联系
jmp 0x2bf
pop di
pop es
pushf        标志进栈  进栈前eflags=0x293
pop word ptr es:[di+02]     将标志出栈  [di+2]=ss:0x14f2   在以上的操作中(除了int10操作不知道以外)并没有对该地址进行读写操作,可能是以前或者有BIOS赋值   出栈后eflags的值没有改变,这段代码的意思不明白,请高手赐教
mov es:[di+04],ax
mov es:[di+06],bx
mov es:[di+08],cx
mov es:[di+0a],dx
mov es:[di+0c],si
mov es:[di+0e],es
pop es
pop ds
pop si
pop di
leave
ret           call 0x272返回:该函数的作用不是太明确,第一,int10功能调用不明,第二,对标志寄存器的操作不明。
ad sp,0x4
mov [bp-10],0x10
mov [bp-0c],0x3
lea ax,[bp-10]
push ss
push ax
call 0x272     在调用int10 的时候,其参数有了改变,所以这一次的功能调用可能是“读取光标的位置”
add sp,0x4
mov [bp-10],0x10
mov [bp-0c],0x2000
sub ax,ax
mov [bp-0a],ax
mov [bp-06],ax
lea ax,[bp-10]
push ss
push ax
call 0x272    在这个调用中因为不知道int10 ah=20,所以连猜都猜不出来了
add sp,0x4
mov [bp-10],0x10
mov [bp-0c],0x0a20
mov [bp-0a],0x0
mov [bp-08],0x1
lea ax,[bp-10]
push ss
push ax
call 0x272     在当前光标处写字符??
call 0x2786    在此跟进
    enter 0x8,0x0
    mov [bp-08],0x0
mov [bp-06],0xB800
mov [bp-02],0x720       07为属性“normal”,2为空格
mov [bp-04],0x7d0      计数器,循环2000次
mov es,[bp-06]
mov ax,[bp-02]    (0x27a1)
mov bx,[bp-08]
add word ptr [bp-08],0x2
mov es:[bx],ax       es:[bx]显卡内存的起始地址
dec word ptr [bp-04]
jne 0x27a1      这段代码是将显卡的内存地址从es:[bx]到es:[0x07d0]全部用0x720填充
sub ax,ax
mov word ptr [0x1dc0],ax
mov word ptr [0x1dbe],ax
mov ax,word ptr [0x1dba]
mov dx,[0x1dbc]
mov word ptr [0x1db6],ax
mov [0x1db8],dx     这几个地址不太清楚(可能是跟user_private_area和UTF-8 format character 有关,瞎蒙的:―)  )
leave
ret        返回
leave
ret     到此call 0x22cc函数返回             总结:该过程调用的功能:该函数的主要功能是对显示设备的操作,包括打开设备编码表中的显示设备、调用了四次call 0x272函数(该函数调用了BIOS中断int 10,每次调用其实现的功能都不一样,不过估计都是对屏幕的初始化具体功能不清楚,int10 参数不常见)、最后call 0x2786(该函数的主要功能是初始化屏幕,为显示窗口打基础,即Pop-up windows functions。其寸取了几个内存地址,意义不明)


请老大给点意见先,谢谢赐教.


paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-03-16 19:04
强啊,兄弟。我觉得反向太麻烦所以直接研究源代码。经验谈不上,还是在分析中。我用Bochs装Win2k总出问题。
Ideas for life!
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-03-17 08:22
呵呵,我的bochs也是老出问题,根本就装不完全,所以就这么将就这用呢,到后面调用系统内核部分我就完蛋了,刚好ntldr能完整运行.
这是我第一次搞反汇编,有很多地方请各位高手多多指教.
现在我也在找nt4的原码,希望看到ntldr的代码,反汇编分析太累了,再说分析到后面,有些地址你根本就不知道那什么鬼东西.
昨天有位朋友愿意把nt4 src给我,不过需要一个空间上传,不知有没有.
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
14楼#
发布于:2005-03-17 08:54
如何编译原代码里的NTLDR??
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
reegees
驱动牛犊
驱动牛犊
  • 注册日期2005-01-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望18点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-03-17 09:51
不知道,昨天我还在想这个问题,就算我有完整的ntldr源代码,我怎样编译出来??我希望高手能给予解释.
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-03-17 09:59
需要用masm386和cl16.exe,设置好source编译,还有目录最好是C:\\nt
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-03-17 10:04
还有一点忘了说了先用DDK对SDKTools目录下的文件进行编译生成masm386等工具。
Ideas for life!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
18楼#
发布于:2005-03-17 14:39
masm386是什么是MASM5.0吗??
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-03-17 15:44
masm386是什么是MASM5.0吗??

我刚更新的masm32v8中的masm是6.14版的,masm386是什么
我没有nt4的src,我只有个win2k的,win2k src中没有ntldr,不知能不能这样编译点别的东东出来。
reegees说“昨天有位朋友愿意把nt4 src给我,不过需要一个空间上传,不知有没有”,借znsoft的宝地再用用,
ftp://soft:mysoft@www.zndev.com
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
上一页
游客

返回顶部