GetModuleBaseByName

typedef struct _SYSTEM_MODULE_INFORMATION{

ULONG Reserved[2];

PVOID Base;

ULONG Size;

ULONG Flag;

USHORT Index;

USHORT Unknown;

USHORT LoadCount;

USHORT ModuleNameOffset;

CHAR ImageName[256];

}SYSTEM_MODULE_INFORMATION, * PSYSTEM_MODULE_INFORMATION;

extern "C"

NTSYSAPI

NTSTATUS

NTAPI

ZwQuerySystemInformation(

        IN ULONG SystemInformationClass,

        IN OUT PVOID SystemInformation,

        IN ULONG SystemInformationLength,

        OUT PULONG ReturnLength);

ULONG GetModuleBaseByName(CHAR* InputName)

{

NTSTATUS status = STATUS_SUCCESS;

     ULONG                         n        = 0;

     ULONG                         i        = 0;

      PSYSTEM_MODULE_INFORMATION    module = NULL;

     PVOID                         pbuftmp      = NULL;

    ULONG                         Result = 0;

      status = ZwQuerySystemInformation(11, &n, 0, &n);

pbuftmp = ExAllocatePool(NonPagedPool, n);

status = ZwQuerySystemInformation(11, pbuftmp, n, NULL);

module = (PSYSTEM_MODULE_INFORMATION)((PULONG )pbuftmp + 1 );

n        = *((PULONG)pbuftmp );

for ( i = 0; i < n; i++ )

{

   //DbgPrint( "0x%08X %sn", module[i].Base, module[i].ImageName);// + module[i].ModuleNameOffset );

   if (!strcmp(InputName,(CHAR*)(module[i].ImageName + module[i].ModuleNameOffset)))

    {

     Result = module[i].Base;

    break;

    }

}

ExFreePool(pbuftmp);

return Result;

}


尝试了下Windbg+VMWare调试驱动

用下来后感觉易用性不比Syser差,就是配置环境稍麻烦一点,Syser更便于到客户机器上除错。

归纳下Windbg+VMWare调试驱动的要点

1、multi(0) disk(0) rdisk(0) partition(1) WINDOWS="Microsoft Windows XP Professional-Debug" /fastdetect /debugport=COM1 /baudrate=115200

2、VM->Settings->Add->加一个Serial Port,选择"Output to named pipe",然后下一步,第一框里保持默认的 "\.pipecom_1"

第二框里选"This end is the server."

第三框里选"The other end is an application."

选中 "Connect at power on"选中 "Yield CPU on poll"。保存退出。

因为自己的DEBUG版的驱动里带有符号路径,所以WINDBG中不用设置自己的驱动的符号了,VM机上只需要放个DEBUG版的驱动就行。


CnWizards update to 0.8.9.456

0.8.9 较 0.8.8 的更新:

+ 增加对 Delphi 2009 的支持,只支持 12.0.3163.16989 及以上版本。部分功能暂时禁用。
+ 代码高亮增加当前光标处标识符背景色高亮的功能,默认禁用。
+ 增加函数列表编辑器工具栏,目前只支持 Pascal 文件。
+ 代码带格式输出增加对 C/C++ 文件的支持,允许指定编码。
* 组件前缀专家增加对Form等设计器改名的支持。
* 代码编辑扩展修正某些键盘布局下打开括号自动匹配时无法输入某些特殊字符的问题。
* 源码比较专家修正BDS下加载内存文件时不支持UTF8的问题。
* 转换为字符串功能允许忽略回车换行符。
* 函数过程列表优化 BDS 下的过滤速度。
* 脚本专家增加部分例子。
* 其它的错误修正和改进。

相关下载:
CnWizards V0.8.9.456 安装程序

CnWizards V0.8.9.456 源代码