這是一個隱藏特定進程給出的Pid的代碼,但我不能得到PsGetCurrentProcess()的工作,它一直拋出未定義的引用錯誤,我不知道這裏做什麼是代碼鏈接器錯誤未定義的引用調用PsGetProcess
#include <iostream>
#include <conio.h>
#include "ddk\ntddk.h"
#include <stdio.h>
unsigned long SearchProcId(unsigned int Pid){
unsigned long eproc,aux,proceso,ret;
PLIST_ENTRY lista;
unsigned int idProceso=0;
eproc=(unsigned long)PsGetCurrentProcess();//estamos en "System"
lista=(LIST_ENTRY*)(eproc+0x88);//tenemos los punteros al siguiente y al anterior
aux=(unsigned long)lista->Blink;
proceso=(unsigned long)lista;
idProceso=*((int *)(proceso+0x84));
while(proceso!=0 && aux!=proceso && Pid!=idProceso)//recorremos la lista
{
proceso-=0x88;
ret=proceso;
idProceso=*((int *)(proceso+0x84));
//avanzamos
lista=lista->Flink;
proceso=(unsigned long)lista;
}
if(Pid!=idProceso)
ret=0;
return ret;
}
int main(int argc, char** argv) {
PLIST_ENTRY plist_active_procs;
unsigned long eproc=0;
printf ("id del proceso del lol?");
unsigned int i=0;
scanf ("%d",&i);
eproc = SearchProcId(i);
plist_active_procs = (LIST_ENTRY*)(eproc+0x88);
plist_active_procs -> Blink -> Flink=plist_active_procs->Flink;
plist_active_procs -> Flink -> Blink=plist_active_procs->Blink;
return 0;
}
它不斷拋出我這個錯誤,我不知道該怎麼做C:\用戶\加布裏埃爾\文檔\ main.o的main.cpp :(文字+ 0xe):未定義的引用`小鬼 _IoGetCurrentProcess @ 0'
我們可以得到你的編譯器命令和輸出...另外,你的兩個關閉}缺少4個空格。 – ChrisCM
如果你檢查一個[參考](http://msdn.microsoft.com/en-us/library/windows/hardware/ff559933%28v=vs.85%29.aspx)它會告訴你你需要什麼庫與...聯繫。 –