阅读:2548回复:15
在驱动程序中由何处导入GetEnvironmentStringsW这个函数?
GetEnvironmentStringsW既不在ntoskrnl.exe中,也不在ntdll.dll中,而是在kernel32.dll中,但是不能在驱动程序中调用kernel32.dll中的函数。那么驱动程序应该从哪里导入GetEnvironmentStringsW呢?
或者ntoskrnl.exe和ntdll.dll中有哪个函数可以替代它? |
|
最新喜欢:![]()
|
沙发#
发布于:2002-07-19 16:35
direct access EPROCESS.PEB,
in PEB, this is a UnicodeString to describe it. |
|
板凳#
发布于:2002-07-19 17:26
谢谢回复。
不过我已经将它暂时回避了,方法是在应用程序调用它,再发送给驱动程序,现在已经可以在驱动程序中启动一个应用程序啦。 我会实验你的方法,也许更好。我的目标是完全由驱动程序来启动一个应用程序,现在就只有这个函数还需要应用程序了。 |
|
|
地板#
发布于:2002-07-19 17:47
海基会国际化建
|
|
地下室#
发布于:2002-07-19 18:05
谢谢回复。 好像很厉害的样子。 :D |
|
5楼#
发布于:2002-07-19 18:57
呵呵!驱动里面好象也有对应的函数的,我今天没有留神看
|
|
6楼#
发布于:2002-07-19 19:03
系统有函数
ZwSetSystemEnvironmentValue NtQuerySystemEnvironmentValue HalSetEnvironmentVariable RtlExpandEnvironmentStrings ZwQuerySystemEnvironmentValue RtlQueryEnvironmentVariable ZwSetSystemEnvironmentValue |
|
7楼#
发布于:2002-07-20 14:14
系统有函数 这个好,等我试好了,就给各位加分。 :D |
|
|
8楼#
发布于:2002-07-20 15:26
系统有函数 这些函数和GetEnvironmentStringsW好象不是一回事哦。 The GetEnvironmentStrings function returns the address of the environment block for the current process. This function replaces the GetDOSEnvironment function |
|
|
9楼#
发布于:2002-07-20 16:37
终于搞定了。GetEnvironmentStringsW在此没有什么用处。
用这样随便写一下就可以了:PWSTR env = L\"\\\\??\\\\C:\\\\WINNT\"; faint! 以下是测试程序和源代码: |
|
|
10楼#
发布于:2002-07-20 20:15
靠,这个家伙,没有把驱动代码搞出来啊,靠,什么时候我把你的驱动代码搞出来
|
|
11楼#
发布于:2002-07-22 08:32
以你的水平,应该很容易就搞出来了。 :)
|
|
|
12楼#
发布于:2002-07-23 21:32
今天看到了这个贴子,看到大家没原码很不爽的样子,就花了十几分钟看反汇编码。又有人叫,草草了事,写几个字:
财神兄代码在Dispatch例程里调了一个函数,用以实现功能。其代码与Gary Nebbett的相似,就不多说了,大家自己看吧。这里谈谈其中调用ntoskrnl.exe未导出函数的代码:比如ZwCreateProcess,此程序中有一小块全局内存区域保存各未导出函数名称,在要使用之前以次为参数调用了另两个函数,返回了所需函数地址再Call之。第一个函数用ZwQuerySystemInformation查询系统模块(SystemModuleInformation),得到了ntdll模块基址并返回(暂时只大概看了一下静态反汇编,没有具体参数值,应是ntdll.dll),随后第二个函数没仔细看,应就是从模块PE头找出函数地址来了。 没仔细看,若真的是call了ntdll的代码是有说过的问题的。正确的做法很多,比如先从ntdll中获取服号,再从SSDT中查获内核中函数地址;或直接写个ntoskrnl.exe的扩展还更简单。幸运的CsrClientCallServer仅仅用LPC机制通信而没有Ring3依赖代码使模拟变得简单。 财神兄会不会咬人? :P |
|
13楼#
发布于:2002-07-23 21:39
呵呵!不会的,如果咬,那就让他吃耗子药,很高兴你能够花时间去反汇编他的驱动,我现在没有时间,等有时间了我也弄一下,弄出来再贴出来
|
|
14楼#
发布于:2002-07-24 08:39
我没贴出驱动程序代码就是因为这个程序代码比较简单,而且正如PJF所说,我是根据Gary Nebbett的代码综合而来的。
大家可以根据这种思路去做,应该更有收获,如果你愿意的话。 :D |
|
|
15楼#
发布于:2002-07-24 10:51
_SHELL_LOADLIBRARY
_SHELL_GETPROCADDRESS hahaha~~ |
|
|