首页
社区
课程
招聘
[求助]菜鸟改写API遇到困难了
发表于: 2006-1-3 22:21 4397

[求助]菜鸟改写API遇到困难了

2006-1-3 22:21
4397
进入0级后,改写API是不是还是要用VIRTUALPROTECT?改写系统段的权限?地址没错的,直接写就死了

[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
直接设定CR0的第16位 WP 位为零:

能够写
  mov  eax, cr0        ;取cr0 的标志位
  mov  OldAttr, eax    ;保存原来的标志
  and  eax, 0FFFEFFFFh ;设置 CR0 16 BIT = 0
  mov  cr0, eax        ;设置

恢复
  mov  eax, OldAttr
  mov  cr0, eax

比那个VirtualProtectEx 是不是更简单,哈哈
2006-1-4 17:04
0
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
3
最初由 gzgzlxg 发布
直接设定CR0的第16位 WP 位为零:

能够写
mov eax, cr0 ;取cr0 的标志位
mov OldAttr, eax ;保存原来的标志
........

学习
2006-1-4 17:14
0
雪    币: 178
活跃值: (184)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
真的很谢谢,努力学习!!
2006-1-5 08:57
0
雪    币: 178
活跃值: (184)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
化境里面没有提到WP位,而且……

从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5―位30及CR3中的位0至位11是保留位,这些位不能是随意值,必须为0。
控制寄存器CR0的低16位等同于80286的机器状态字MSW。

CR0中的位5―位30保留必须为0的,而且里面也没有提到WP位,网上查了一下也没有,gzgzlxg大侠能不能说说原因?我糊涂了
2006-1-5 14:58
0
雪    币: 615
活跃值: (1687)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
我也没看到BIT
2006-1-5 20:01
0
雪    币: 615
活跃值: (1687)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
X86系列CPU内部的CR0位16乃是WP位.该位如果被置0,则RING0代码可以修改任意地址的数据(当然必须有物理页对应.)无论该地址对应的页是否为写保护.:)那么我们所要干的是在需要的时候让自己的代码拥有该权限,而不需要时,仍然恢复系统内存保护策略.
317K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3E0S2K9X3q4S2i4K6u0W2j5X3u0K6i4K6u0W2N6i4y4Q4x3V1k6V1L8$3y4K6i4K6u0r3b7$3!0E0M7s2g2@1k6i4u0Q4x3V1k6b7M7X3!0Y4M7X3q4E0L8h3W2F1k6#2)9J5c8X3I4#2x3q4)9J5y4f1f1%4i4K6t1#2z5f1q4Q4x3U0f1^5y4q4)9J5y4f1f1$3i4K6t1#2z5p5q4Q4x3U0f1^5x3q4)9J5y4f1f1$3i4K6t1#2z5f1y4Q4x3U0g2m8c8W2)9J5y4f1f1$3i4K6t1#2z5e0k6Q4x3U0f1^5y4#2)9J5y4f1f1$3i4K6t1#2b7e0q4Q4x3U0g2m8x3#2)9J5c8Y4y4&6M7#2)9J5c8U0u0C8x3o6x3I4x3W2)9J5k6h3S2@1L8h3H3`.
2006-1-5 20:15
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
8
Intel Architecture Software Developer’s
Manual
Volume 3:
System Programming

WP
Write Protect (bit 16 of CR0). Inhibits supervisor-level procedures from writing into user-level read-only pages when set; allows supervisor-level procedures to write into user-level read-only pages when clear. This flag facilitates implementation of the copyon-write method of creating a new process (forking) used by operating systems such as UNIX*.
                                      2-14
2006-1-6 00:18
0
雪    币: 615
活跃值: (1687)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
最初由 gzgzlxg 发布
Intel Architecture Software Developer’s
Manual
Volume 3:
System Programming

........


学习了!!
2006-1-6 08:56
0
雪    币: 178
活跃值: (184)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
MyIntGate   proc
      pushad
      invoke DbgPrint,$CTA0("My IntGate Reached")
      mov eax,CR0
      mov CR0VALUE,eax
      and  eax, 0fffeffffh
      mov  cr0, eax
      mov bx,001bh
      mov ds,bx
      mov byte ptr ds:[77d504eah],90h
      popad
      iretd
MyIntGate   endp
SYS里的,没有恢复,只为看效果,结果到这里mov byte ptr ds:[77d504eah],90h,兰了,是C0000005 (ACCESS VIOLATION),77d504eah是MessagaBoxA,还有,xp sp2,pm 1.6的,怎么会的?
还有,"当然必须有物理页对应" 怎么理解?
2006-1-6 10:26
0
游客
登录 | 注册 方可回帖
返回