ReadVirtualMemory是哪个包里的API,怎么加载或者调用?
我的软件里找不到ReadVirtualMemory,怎么办,请DELPHI高手给予指点!
我都等了很长时间了,上个贴子没有人解决呀!
我的软件里找不到ReadVirtualMemory,怎么办,请DELPHI高手给予指点!
我都等了很长时间了,上个贴子没有人解决呀!
解决方案 »
- 用了delphi2010 发现装上raize或者CnWizards立马出问题
- delphi中Lcdscreen控件
- 有没有通用的串口设置对话框
- memo组件 不能读入 *.txt 文件?
- 怎样取得当前表的主键字段的名称?
- 启动窗体(闪屏)上有个动画gif见面,采用show时动画不动,而采用ShowModal可以动但是不能自动关闭窗体了,有什么好办法?
- 初次接触delphi,请大虾给点经验和教程!
- 有表达式计算的逆波兰算法源码吗?
- 请问如何动态改变精灵位图的大小
- 麻烦问一下,100分请笑纳
- 用treeview做一个像msn一样的显示联机用户和脱机用户的,出现问题,大家帮忙。
- 有没有没有睡的兄弟呀,看看这个是在哪里加载呀:ReadVirtualMemory!在线等。。。。
BOOL ReadProcessMemory( HANDLE hProcess, // handle of the process whose memory is read
LPCVOID lpBaseAddress, // address to start reading
LPVOID lpBuffer, // address of buffer to place read data
DWORD nSize, // number of bytes to read
LPDWORD lpNumberOfBytesRead // address of number of bytes read
);
function HideProcess: boolean;
label Err;
var
EProcess : DWord;
hPM, FLink, BLink: Cardinal;
begin
Result := false;
EProcess := GetCurrentProcess;
if EProcess < 1 then Exit;
if not ReadVirtualMemory(EProcess+$88, @FLink, 4) then Exit;
if not ReadVirtualMemory(EProcess+$8C, @BLink, 4) then Exit;
if not WriteVirtualMemory(FLink+4, @BLink, 4) then Exit;
if not WriteVirtualMemory(BLink, @FLink, 4) then Exit;
Result := true;
end;所以我需要知道这两个API是在哪个单元里?
强
楼主试了,搞定了没有?
再说具体点好吗?
我在调试WIN2000下程序彻底隐藏的问题,如果哪位大侠有这方面的资料也可以提供!
我这个问题好像用到了Native API 这个东西,还有什么DDK和NTDLL这几个PAS单元,看来这个东西还真深奥呢!
Inheritance diagram for nachos::userprog::UserProcess: List of all members.
Public Member Functions
UserProcess ()
boolean execute (String name, String[] args)
void saveState ()
void restoreState ()
String readVirtualMemoryString (int vaddr, int maxLength)
int readVirtualMemory (int vaddr, byte[] data)
int readVirtualMemory (int vaddr, byte[] data, int offset, int length)
int writeVirtualMemory (int vaddr, byte[] data)
int writeVirtualMemory (int vaddr, byte[] data, int offset, int length)
void initRegisters ()
int handleSyscall (int syscall, int a0, int a1, int a2, int a3)
void handleException (int cause)
Static Public Member Functions
UserProcess newUserProcess ()
Protected Member Functions
boolean loadSections ()
void unloadSections ()
Protected Attributes
Coff coff
TranslationEntry[] pageTable
int numPages
final int stackPages = 8 --------------------------------------------------------------------------------Detailed Description
Encapsulates the state of a user process that is not contained in its user thread (or threads). This includes its address translation state, a file table, and information about the program being executed.
This class is extended by other classes to support additional functionality (such as additional syscalls).
See also:
nachos.vm.VMProcess
nachos.network.NetProcess --------------------------------------------------------------------------------Constructor & Destructor Documentation
nachos::userprog::UserProcess::UserProcess ( ) [inline]
Allocate a new process.
--------------------------------------------------------------------------------Member Function Documentation
boolean nachos::userprog::UserProcess::execute ( String name,
String[] args
) [inline]
Execute the specified program with the specified arguments. Attempts to load the program, and then forks a thread to run it.
Parameters:
name the name of the file containing the executable.
args the arguments to pass to the executable. Returns:
true if the program was successfully executed.
void nachos::userprog::UserProcess::handleException ( int cause ) [inline]
Handle a user exception. Called by UserKernel.exceptionHandler(). The cause argument identifies which exception occurred; see the Processor.exceptionZZZ constants.
Parameters:
cause the user exception that occurred. Reimplemented in nachos::vm::VMProcess.
int nachos::userprog::UserProcess::handleSyscall ( int syscall,
int a0,
int a1,
int a2,
int a3
) [inline]
Handle a syscall exception. Called by handleException(). The syscall argument identifies which syscall the user executed:syscall# syscall prototype
0 void halt();
1 void exit(int status);
2 int exec(char *name, int argc, char **argv);
3 int join(int pid);
4 int creat(char *name);
5 int open(char *name);
6 int read(int fd, char *buffer, int size);
7 int write(int fd, char *buffer, int size);
8 int close(int fd);
9 int unlink(char *name); Parameters:
syscall the syscall number.
a0 the first syscall argument.
a1 the second syscall argument.
a2 the third syscall argument.
a3 the fourth syscall argument. Returns:
the value to be returned to the user.
Reimplemented in nachos::network::NetProcess, and nachos::vm::VMProcess.
void nachos::userprog::UserProcess::initRegisters ( ) [inline]
Initialize the processor's registers in preparation for running the program loaded into this process. Set the PC register to point at the start function, set the stack pointer register to point at the top of the stack, set the A0 and A1 registers to argc and argv, respectively, and initialize all other registers to 0.
boolean nachos::userprog::UserProcess::loadSections ( ) [inline, protected]
Allocates memory for this process, and loads the COFF sections into memory. If this returns successfully, the process will definitely be run (this is the last step in process initialization that can fail).
Returns:
true if the sections were successfully loaded.
Reimplemented in nachos::vm::VMProcess.
UserProcess nachos::userprog::UserProcess::newUserProcess ( ) [inline, static]
Allocate and return a new process of the correct class. The class name is specified by the nachos.conf key Kernel.processClassName.
Returns:
a new process of the correct class.
int nachos::userprog::UserProcess::readVirtualMemory ( int vaddr,
byte[] data,
int offset,
int length
) [inline]
Transfer data from this process's virtual memory to the specified array. This method handles address translation details. This method must not destroy the current process if an error occurs, but instead should return the number of bytes successfully copied (or zero if no data could be copied).
Parameters:
vaddr the first byte of virtual memory to read.
data the array where the data will be stored.
offset the first byte to write in the array.
length the number of bytes to transfer from virtual memory to the array.