首页
社区
课程
招聘
delphi 嵌入两行汇编 帮我看下谢谢
发表于: 2016-1-28 22:59 3230

delphi 嵌入两行汇编 帮我看下谢谢

2016-1-28 22:59
3230
var
   dwTEBC0:DWORD;
begin
     begin
     asm

     push eax
     mov eax,fs:[0xc0]
     mov dwTEBC0, eax
     pop eax

     end;
     showmessage(inttostr(dwTEBC0));
     end;
end;

我不太懂嵌入汇编,堆栈平衡等问题,帮我把这代码改下谢谢指教
主要想要fs:[0xc0]指向的地址,然后写入内存修改指向地址的代码,最好写内存保护,写内存都都用汇编写出来(要求有点多谢谢啊)

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 22
活跃值: (458)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mov  eax,fs:[$c0]
2016-1-29 09:02
0
雪    币: 250
活跃值: (81)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
DWORD nAddr = 0;
        _asm
        {
                mov eax,fs:[0xc0];
                mov nAddr, eax;
        }
        printf("%08x", nAddr);
2016-1-29 10:47
0
雪    币: 270
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
    asm
      mov eax, fs:[0C0H]
      mov dwTEBC0, eax
    end;


    dwWriteAddr := $00401000; // 提供有效地址,否则报错
    asm
      mov eax, fs:[0C0H]
      mov dwOldTEBC0, eax
      
      // 修改C0偏移地址,18偏移指向线程环境块(TEB)
      mov ecx, dwWriteAddr
      mov eax, fs:[18H]
      mov dword [eax+0C0H], ecx

      mov eax, fs:[0C0H]
      mov dwNewTEBC0, eax
    end;
    showmessage('原TEB+C0指向地址:' + inttostr(dwOldTEBC0) + ',新TEB+C0指向地址:' + inttostr(dwNewTEBC0));


楼主上个帖子也是我答的,如果问题解决请结帖吧,等着转正
2016-1-29 11:21
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
https://github.com/codereversing/wow64syscall
看这里
2016-1-29 18:40
0
游客
登录 | 注册 方可回帖
返回
//