首页
社区
课程
招聘
[旧帖] [求助]不知哪儿错了 0.00雪花
发表于: 2009-11-17 05:29 1339

[旧帖] [求助]不知哪儿错了 0.00雪花

2009-11-17 05:29
1339
GetNameOffset proc psp        ;psp中放的是PsGetCurrentProcess返回的_eprocess指针
  local tmpOffset                     ;定义局部变量
  pushad
  mov  ebx, psp                       ;把_eprocess指针放到ebx中
  xor  ecx, ecx                        ;ecx清空,准备循环变量
@@:
  push  eax
  push  ecx
  invoke strncmp, $CTA0("System"), ebx, eax            ;比较指针处字符是否为"system"
  pop  ecx
  .if  !eax                                          ;如果0,即相等
    pop  eax
    mov  tmpOffset, ecx
    popad
    mov  eax, tmpOffset            ;保存结果
    ret
  .elseif
    pop  eax
    inc  ebx                  ;指针加1
    inc  ecx                    ;循环加1
    cmp  ecx, 4096       ;到进程全完
    je  @F
    jmp  @B
  .endif
@@:                        ;错误处理
  popad
  mov  eax, -1              
  ret
GetNameOffset endp
小弟做成驱动后老返回-1,不知错哪儿,请大侠们指出,不胜荣兴.

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 39
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是這段code ?

ULONG
GetProcessNameOffset(
    VOID
    )
{
    PEPROCESS       curproc;
    int             i;

    curproc = PsGetCurrentProcess();

    //
    // Scan for 12KB, hoping the KPEB never grows that big!
    //
    for( i = 0; i < 3*PAGE_SIZE; i++ ) {
     
        if( !strncmp( "System", (PCHAR) curproc + i, strlen("System" ) )) {

            return i;
        }
    }

    //
    // Name not found - oh, well
    //
    return 0;
}
2009-11-17 10:49
0
雪    币: 724
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
入口的eax的值是否有问题?
2009-11-17 22:02
0
游客
登录 | 注册 方可回帖
返回
//