xymjlx
驱动牛犊
驱动牛犊
  • 注册日期2001-05-14
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2467回复:3

如何在核心态获得Commandline

楼主#
更多 发布于:2001-05-28 18:56
各位大虾:
   请问如何在核心态获得进程的命令行。在核心态下可以获得进程的进程名和进程号。

最新喜欢:

xiangshifuxiangs...
softice
驱动牛犊
驱动牛犊
  • 注册日期2001-05-09
  • 最后登录2009-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-06-01 09:27
000107D0   call    j_KeGetCurrentIrql
000107D5   cmp     al, 2           ;DISPATCH_LEVEL
000107D7   jnb     short loc_107E8
000107D9   lea     eax, [ebp+var_4]
000107DC   push    eax
000107DD   call    j_PsGetCurrentProcessId
000107E2   push    eax
000107E3   call    j_PsLookupProcessByProcessId
000107E8
000107E8 loc_107E8:                              
000107E8   mov     eax, [ebp+var_4] ;peprocess
000107EB   test    eax, eax
000107ED   jnz     short loc_107F8
000107EF   call    ds:IoGetCurrentProcess
000107F5   mov     [ebp+var_4], eax ;peprocess
000107F8
000107F8 loc_107F8:                               000107F8   mov     ecx, dword_166D0 ;win2k off=1fc
000107FE   mov     esi, [ebp+arg_0]
00010801   add     ecx, eax
00010803   push    10h              ;maxlength
00010805   push    ecx
00010806   push    esi              ;eprocess+1fch
00010807   call    ds:strncpy
以上的代码从tdimon的驱动tdimsys中截取,它在取进程名时,会先判断当前的中断请求级而采取不同的办法(不同的系统服务要求在不同的irql上运行)。它取得指向执行体进程块的指针后,就利用在初始化时取得的偏移(WIN2K下是1FCH)来定位当前进程名。
xymjlx
驱动牛犊
驱动牛犊
  • 注册日期2001-05-14
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-06-07 14:03
这样获得只是进程名。并且只需调用PsGetCurrentProcess()就能获得执行体进程块的指针。但不是进程的命令行
sunsetyang
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-06-20 16:16
http://www.chinawolf.com/~lu0/tips/tips.html
8.VXD/DRIVER在98/2000下获取当前进程的命令行. by 陆麟 2000.8.3
2000零售版的KERNEL32.DLL为当前进程ANSI版命令行保留的地址为77EE0694.
一个DRIVER在FastIoDeviceControl里进行处理.也就是:MOV EAX,[77EE0694H],EAX为指向ANSI版本CMDLINE的指针.
在98零售版上,有点复杂.
要用如下代码:
MOV EAX,[BFFFC9CDCH]
MOV ECX,[EAX]
MOV EAX,[ECX+C0H]
TEST EAX,EAX
JNZ ERROR
MOV EAX,[ECX+40H]
MOV EAX,[EAX+8]
现在,EAX为指向ANSI版本CMDLINE的指针.

[color=red]Optimization[/color] In Progress . . . Welcome to http://mail.ustc.edu.cn/~chyang/
游客

返回顶部