又一个问题代码,引用的是IamRainLiang朋友的代码,居然调试不通过,怪闷的。

本文介绍了一种在Windows环境下通过扫描当前进程地址空间来查找进程名称的方法。该方法利用了枚举当前进程(PsGetCurrentProcess)和调试打印(DbgPrint)等内核调试API,尝试在指定的内存范围内找到特定的进程名字符串。此技巧适用于Windows驱动开发及调试场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又一个问题代码,引用的是IamRainLiang朋友的代码,居然调试不通过,怪闷的。

http://blog.youkuaiyun.com/iamrainliang/archive/2008/01/25/2065572.aspx

 

 

#define MAX_PROC_NAME_LEN 256

#pragma INITCODE
BOOLEAN EnumProcessList2()
{
  PEPROCESS       curproc;
    char            *nameptr;
    ULONG           i;
 static CHAR  szName[MAX_PROC_NAME_LEN];
 BOOLEAN find2=FALSE;
   
 DbgPrint(("Find Current Process Name begin!/n"));
 curproc = PsGetCurrentProcess();     //获取当前进程信息

    //
    // Scan for 12KB, hopping the KPEB never grows that big!
    //
    for( i = 0; i < 3*PAGE_SIZE; i++ ) {        //在WDM.h中定义#define PAGE_SIZE 0x1000
    
  DbgPrint(("Process Name:%s/n",(PCHAR) curproc + i));
        if(strcmp("NOTEPAD.EXE", (PCHAR) curproc + i)==0)
  {

            nameptr   = (PCHAR) curproc + i;
      strncpy( szName, nameptr, MAX_PROC_NAME_LEN-1 );
   find2=TRUE;
   break;
        }
    }
 if(find2)
     DbgPrint(("Current Process Name:%s/n",szName));
 else
            DbgPrint(("Current Process Name:no find!/n"));
   return TRUE;
}

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 耦合是指软件系统中同组件之间的依赖程度。高耦合意味着组件间紧密关联,修改其中一个组件可能会对其他组件产生可预见的影响。在本文中,“耦合”特指因直接依赖特定 IP 地址而产生的服务间耦合问题。 识别耦合现象的方法: 业务逻辑角度:如果某个业务逻辑的变更会影响到其他相关的业务逻辑,可能存在耦合问题。 开发维护体验:如果频繁需要协调多个团队共同修改代码,通常意味着存在较高的耦合度。 系统部署与调整:如果每次更新或调整某个服务都需要同步修改大量相关服务的配置,这也是耦合的典型表现。 在场景中提到,数据库服务器更换时,原本通过硬编码指定的 IP 地址一旦变化,就需要逐一通知所有依赖该数据库的上游服务进行配置更新和重启操作。这种做法效率低下且容易出错。 为解决上述问题,采用内网域名替代内网 IP 是一种有效的解决方案。 1. 内网域名的基本原理 内网域名通过 DNS 解析机制实现对内网资源的访问,将内网资源(如服务器)的名称映射为 IP 地址。这样,即使服务器的 IP 地址发生变化,只需修改一次 DNS 记录,而无需修改所有依赖该服务的客户端。 2. 实施步骤 修改 DNS 记录:运维人员在需要更换服务器时,只需修改 DNS 服务器中的域名解析记录,将其指向新的 IP 地址。对于短连接客户端,后续请求会自动路由至新服务器;对于长连接,只有新建连接会导向新 IP,已建立的连接仍指向旧 IP。 断开旧 IP 连接:在确认新服务器正常运行后,运维人员需手动断开所有指向旧 IP 的连接。大多数服务或数据库具备自动重连功能,原有连接断开后会自动重新连接至新服务器。 3. 关键优势 减少人为干预:使用内网域名可以自动化完成服务器迁移过程,减少人工操作。 提高系统稳定性:降低因 IP 变更引发的耦合问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值