查找另一个进程里的字符串并修改之,同长度,搞了几天没搞出来,请各位帮帮忙!

解决方案 »

  1.   

    只要知道了字符串的内存地址,用WriteProcessMemory把新的字符串写进去就行了,有什么搞不定的?
    (一般要用到Encoding.Default.GetBytes(str))
      

  2.   

    有那么简单吗?为了保护进程的稳定性,Windows的不同进程是不能互相访问对方的内存地址的。
      

  3.   

    不懂就很难,想搞懂也很难,SOS
      

  4.   

    =http://topic.csdn.net/u/20090511/23/9515b5b1-a1f9-41d9-b7a4-369aa95ce08c.html?seed=366643674
      

  5.   

    进程间实现通讯,也可参考看看myqq
    参考
      

  6.   

    所以提供了Read/Write ProcessMemory,只要你的进程有相应的权限,
    是可以读取/写入其它进程的内存的.windows进程的用户内存分区地址空间起始位置是固定的,内存的分配也是有最
    小分配粒度的.比如一般情况下你new了4字节的内存实际上是划了4k给你.知道这些写个遍
    历不难的.
      

  7.   

    如果目标进程是托管程序的话,会有一个拘留池来维护字符串,不过我不知道怎样读出拘留池里有哪些字符串。
    等待ing......
      

  8.   

    这个可能对你有帮助http://blog.csdn.net/zgke/archive/2008/09/23/2969071.aspx
      

  9.   

    用stringbuider嘛,它的内存地址是固定的
      

  10.   

    通过一些特征查找字符串的位置,比如前后一些不变的字节或者通过某个函数来定位等等方法。
    得到字符串位置后,使用WriteProcessMemory写入就可以了,某些进程可能需要提升权限。