高分求助!不够开新帖再加!!!!!!

adwqx 2006-06-10 09:41:07
求修改EXE 中字符串变量得到发信的功能

我在做一个键盘记录器时

需要客户可以自己配置密码和信箱地址

用简单的COPYMEM方法修改EXE中的对应地址数据后 可能会导致发信认证不通过
用建立字符串资源 然后修改的方法也失败
现在求助 可以 修改EXE中字符串变量的方法

请注释
不够 我另开帖给分 ~!!!!
...全文
212 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
whackj 2007-01-05
  • 打赏
  • 举报
回复
靠`!!!
妈妈地 我自己速度解决了!
这个分给谁??
怎么能收回去1

吃狼的豆腐 2006-06-17
  • 打赏
  • 举报
回复
参考下
直接调用ReadProcessMemory和WriteProcessMemory函数实现进程间通讯
  通过调用ReadProcessMemory以及WriteProcessMemory函数用户可以按类似与Windows3.1的方法实现进程间通讯,在发送进程中分配一块内存存放数据,可以调用GlobalAlloc或者VirtualAlloc函数实现:
  pApp→m_hGlobalHandle=GlobalAlloc(GMEM_SHARE,1024);
  可以得到指针地址:pApp→mpszGlobalHandlePtr=(LPSTR)GlobalLock(pApp→m_hGlobalHandle);
  在接收进程中要用到用户希望影响的进程的打开句柄。为了读写另一进程,应
按如下方式调用OpenProcess函数:
  HANDLE hTargetProcess=OpenProcess(
  STANDARD_RIGHTS_REQUIRED|
  PROCESS_VM_REDA|
  PROCESS_VM_WRITE|
  PROCESS_VM_OPERATION,//访问权限
  FALSE,//继承关系
  dwProcessID);//进程ID
  为保证OpenProcess函数调用成功,用户所影响的进程必须由上述标志创建。
  一旦用户获得一个进程的有效句柄,就可以调用ReadProcessMemory函数读取该
进程的内存:
  BOOL ReadProcessMemory(
  HANDLE hProcess, // 进程指针
  LPCVOID lpBaseAddress, // 数据块的首地址
  LPVOID lpBuffer, // 读取数据所需缓冲区
  DWORD cbRead, // 要读取的字节数
  LPDWORD lpNumberOfBytesRead
  );
  使用同样的句柄也可以写入该进程的内存:
  BOOL WriteProcessMemory(
  HANDLE hProcess, // 进程指针
  LPVOID lpBaseAddress, // 要写入的首地址
  LPVOID lpBuffer, // 缓冲区地址
  DWORD cbWrite, // 要写的字节数
  LPDWORD lpNumberOfBytesWritten
   );
  如下所示是读写另一进程的共享内存中的数据:
  ReadProcessMemory((HANDLE)hTargetProcess,(LPSTR)lpsz,m_strGlobal.GetBuffer(_MAX_FIELD),
  _MAX_FIELD,&cb);
  WriteProcessMemory((HANDLE)hTargetProcess,(LPSTR)lpsz,(LPSTR)STARS,
  m_strGlobal.GetLength(),&cb);


看看这个头文件Tlhelp32.h,里面应该有你要的东西
fireseed 2006-06-16
  • 打赏
  • 举报
回复
用简单的COPYMEM方法修改EXE中的对应地址数据??


COPYMEM是什么?修改EXE文件数据?

楼主,你能否把话讲清楚一点
lewislau 2006-06-16
  • 打赏
  • 举报
回复
//现在求助 可以 修改EXE中字符串变量的方法

如果你要修改其他内存的EXE函数,就要修改内存状态,因为对于其他进程,内存是只读的,你没有修改权限。但是有几个API可个实现。

API为我们提供了一个强大的内存Api操作函数---VirtualProtectEx,WriteProcessMemeory,ReadProcessMemeory,有了它们我们就能在内存中动态修改代码。

如果还不是很明白,可以发信息给我,我做过类似东西
adwqx 2006-06-16
  • 打赏
  • 举报
回复
真的感谢大家可还是没有答案贴出来啊~~~

谁来救我我啊
fireseed 2006-06-16
  • 打赏
  • 举报
回复
存注册表里吧,这么干是很愚蠢的。
adwqx 2006-06-14
  • 打赏
  • 举报
回复
那有没有支持9X ME的方法 因为我做的东西要在所有机器上运行~~
另外想请教UpdateResource的方法 请具体讲下好吗 ?
theone 2006-06-12
  • 打赏
  • 举报
回复
修改资源不是直接copymem,可以调用UpdateResource来实现,不过不支持Windows9X/ME
adwqx 2006-06-12
  • 打赏
  • 举报
回复
我想请KeSummer能把具体的方法和实现代码贴一下`~~
谢谢

还有jacklzw88 可以贴一下你的吗
adwqx 2006-06-11
  • 打赏
  • 举报
回复
我也是这么做的用COPYMEM操作 ,但是这样修改后的资源不能准确,有时原来的数据还在,密码认证就不能通过
我可以把我的程序给你 请你看下 中不?留下你QQ和信箱吧
KeSummer 2006-06-11
  • 打赏
  • 举报
回复
我的做法是拷贝到自身的,假设要配置一个exe,在这个exe结尾附加数据,这个exe要读入附加的数据只要文件指针移动-x就可以了.
jacklzw88 2006-06-10
  • 打赏
  • 举报
回复
放到资源里修改,我以前做生成器都是这样做的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧