社区
驱动开发/核心开发
帖子详情
在内核层如何获取当前应用程序的路径
auqvjjj333
2011-06-19 06:03:00
找了半天API,没找到得到当前应用程序路径的。
现在写个软件需要通过ID,或其它方式来得到当前应用程序的路径,然后返回给用户层,劳烦知道贴出来下。
...全文
229
15
打赏
收藏
在内核层如何获取当前应用程序的路径
找了半天API,没找到得到当前应用程序路径的。 现在写个软件需要通过ID,或其它方式来得到当前应用程序的路径,然后返回给用户层,劳烦知道贴出来下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lactoferrin
2011-06-20
打赏
举报
回复
这两个定义了一些相同的东西,我只用ntddk.h
auqvjjj333
2011-06-20
打赏
举报
回复
好的,windows.h 和ntddk.h我放一起老是冲突,您编写驱动的时候有没有这两个头文件在一起的例子啊,还是根本就不能在一起?
Lactoferrin
2011-06-20
打赏
举报
回复
windows.h也没有PROCESS_PARAMETERS
HINSTANCE就是void*
你的另一个帖子里面我发了PROCESS_PARAMETERS的结构
auqvjjj333
2011-06-20
打赏
举报
回复
请教个问题,windows.h头文件是不是不能在驱动工程里包含啊。
PPROCESS_PARAMETERS
HINSTANCE
PEB结构的这两个成员,好像也不认识,说未声明
Lactoferrin
2011-06-19
打赏
举报
回复
你需要对可信任进程做保护
auqvjjj333
2011-06-19
打赏
举报
回复
我现在还没写,在做一个教程的题目,天书夜读的反病毒那一课。
对一些总是信任的进程维护一个表,我的思路是将一些可信任进程的绝对路径添加一个文件中,然后通过路径来判断第一关,第二关再用MD5来检验,你看这样可行么?
Lactoferrin
2011-06-19
打赏
举报
回复
居然忘了PsGetProcessPeb
你调用PsGetProcessPeb(PsGetCurrentProcess())就可以得到当前进程的PebBaseAddress,不过PsGetProcessPeb是未公开的函数
Lactoferrin
2011-06-19
打赏
举报
回复
贴一下你的代码
auqvjjj333
2011-06-19
打赏
举报
回复
恩。先把贴结了再慢慢研究,谢谢你的帮助,非常有用。虽然现在还没弄出来。
Lactoferrin
2011-06-19
打赏
举报
回复
读这些东西的时候irql需要是PASSIVE_LEVEL,因为它们可能不在物理内存
auqvjjj333
2011-06-19
打赏
举报
回复
好的。我试试先,一会给你结贴,两个贴的分都给你了,一会不懂的请指教。非常感谢
Lactoferrin
2011-06-19
打赏
举报
回复
你hook也得有人去执行
而且不如这个方便,效果也不好
auqvjjj333
2011-06-19
打赏
举报
回复
[Quote=引用 2 楼 lactoferrin 的回复:]
如果是当前进程就不用KeStackAttachProcess
[/Quote]
请问,可不可以通过HOOK某个函数,从那里的参数获取
Lactoferrin
2011-06-19
打赏
举报
回复
如果是当前进程就不用KeStackAttachProcess
Lactoferrin
2011-06-19
打赏
举报
回复
ZwQueryInformationProcess可以得到进程的peb地址
typedef struct _PEB
{
UCHAR InheritedAddressSpace;
UCHAR ReadImageFileExecOptions;
UCHAR BeingDebugged;
UCHAR BitField;
/*ULONG ImageUsesLargePages: 1;
ULONG IsProtectedProcess: 1;
ULONG IsLegacyProcess: 1;
ULONG IsImageDynamicallyRelocated: 1;
ULONG SpareBits: 4;*/
PVOID Mutant;
PVOID ImageBaseAddress;
PPEB_LDR_DATA Ldr;
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
PVOID SubSystemData;
PVOID ProcessHeap;
PRTL_CRITICAL_SECTION FastPebLock;
.........
从peb结构找到ProcessParameters的地址
typedef struct _RTL_USER_PROCESS_PARAMETERS
{
ULONG MaximumLength;
ULONG Length;
ULONG Flags;
ULONG DebugFlags;
PVOID ConsoleHandle;
ULONG ConsoleFlags;
PVOID StandardInput;
PVOID StandardOutput;
PVOID StandardError;
CURDIR CurrentDirectory;
UNICODE_STRING DllPath;
UNICODE_STRING ImagePathName;
UNICODE_STRING CommandLine;
PVOID Environment;
ULONG StartingX;
ULONG StartingY;
ULONG CountX;
ULONG CountY;
ULONG CountCharsX;
ULONG CountCharsY;
ULONG FillAttribute;
ULONG WindowFlags;
ULONG ShowWindowFlags;
UNICODE_STRING WindowTitle;
UNICODE_STRING DesktopInfo;
UNICODE_STRING ShellInfo;
UNICODE_STRING RuntimeData;
RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
ULONG EnvironmentSize;
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
ImagePathName就是exe路径
读取这些东西要先KeStackAttachProcess后才行,因为这些东西在用户空间
C++
应用程序
路径
获取
及操作
想要访问执行程序(.exe)
路径
下的文件,有以下几个步骤: 1.先通过函数GetModuleFileName
获取
执行程序的绝对
路径
。 TCHAR szPath[ MAX_PATH ] = {0}; GetModuleFileName( NULL, szPath, MAX_PATH ); 其中GetModuleFileName函数为windows的AP
android
获取
当前
程序
路径
,Android
获取
程序
路径
(/data/data/appname)
Android
获取
文件夹
路径
/data/data/http://www.2cto.com/kf/201301/186614.htmlString printTxtPath = getApplicationContext().getPackageResourcePath() + "/files/" + fileName;=>/data/app/com.example.fileoperati...
Linux:
获取
当前
进程的执行文件的绝对
路径
本文介绍Linux的
应用程序
和
内核
模块
获取
当前
进程执行文件绝对
路径
的实现方法。
Windows驱动—Windows
应用程序
和Windows驱动通信编程
文章目录介绍知识前奏
内核
方面编程设备对象和符号链接分发函数应用方面编程打开设备设备控制请求代码应用
层
代码
内核
层
代码完整工程代码测试效果 介绍 Windows
应用程序
(Ring3
层
)和
内核
驱动(Ring0
层
)是运行在Windows权限的不同级别,简单来说各有优势。
内核
层
权限较大 能做很多
应用程序
办不到的事情 不直接面向程序使用的用户,Windows
应用程序
在Ring3
层
直接面向用户,界面友好。当应用
层
办不到的时候就需要借助
内核
层
了,所以 win32
应用程序
和Windows
内核
驱动通信是有必要的。Windo
Linux 下
获取
进程所在文件的
路径
需要注意的是,/proc/pid/exe文件是一个符号链接文件,它指向的
路径
可能会随着进程的可执行文件的变化而变化,例如在运行过程中升级可执行文件或链接库,因此在读取它的内容时,应该对返回值进行错误检查,以确保它确实指向
当前
进程的可执行文件。需要注意的是,/proc/pid/cwd文件是一个符号链接文件,它指向的
路径
可能会随着进程的工作目录的变化而变化,因此在读取它的内容时,应该对返回值进行错误检查,以确保它确实指向
当前
进程的工作目录。其中/usr/bin/top为top进程可执行文件所在的绝对文件
路径
。
驱动开发/核心开发
21,597
社区成员
21,709
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章