|
1鱼币
要求是这样的:编写一个loader加载器,加载各种程序安装包的时候(PC机 XP 无保护),把系统默认的安装路径变为D:\MyloaderInstall。不用loader的时候就不作任何改动。
我是打算这样设计的:
OPENFILENAME结构体 打开指定安装包A.exe 获取到A.exe绝对路径 和 文件名 等 相关信息
CreateProcess以挂起方式(CREATE_SUSPENDED)打开A.exe
因为安装包默认路径是读取注册表HKLM\Sofeware\Microsoft\Window\CurrentVersion下的ProgramFilesDir项的值。所以要hook RegQueryValueExW这个api
然后我把hook RegQueryValueExW的代码写在一个dll 然后loadInject()以远线程方式注入A.exe
最后ResumeThread恢复挂起的进程A.exe。
到这里有前辈指点错误吗?
=========================================
首先我是选择inline hook 这种方式处理RegQueryValueExW,但处理失败,用XueTr观察发现CreateProcess以挂起方式(CREATE_SUSPENDED)打开A.exe只有ntdll.dll。
问题1:是因为只有ntdll.dll 没有kernel32.dll 和 advapi32.dll 所以我找不到RegQueryValueExW?
问题2:再之前没用XueTr发现只加载了ntdll.dll的时候,我处理RegQueryValueExW发现时能跳转进入MyRegQueryValueExW的,但参数各种混乱~
问题3:以题目要求,还适不适合用inline hook 处理RegQueryValueExW?IAT hook?SSDT hook?
以上,真心跪求指点!
|
|