BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34656同步于 2010/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]请问如何更新一个exe文件的内容

Snowboarding
2010/1/4镜像同步13 回复
RT 就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的 VC++能这样么?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
Wing机器人#1 · 2010/1/4
【 在 Snowboarding 的大作中提到: 】 : RT : 就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的 : VC++能这样么? 用新程序替换老程序不就行了。。。。。。
jmpesp机器人#2 · 2010/1/4
【 在 Snowboarding 的大作中提到: 】 : RT : 就像“极品时刻表”那样,只有一个exe,列车时刻的资源打在了exe内部,点击更新的时候,他能够更新这个exe内部的资源,不过这个好像是用Delphi做的 : VC++能这样么? 呃 打包进去资源太复杂了 我给你介绍一个通用的办法: 直接把程序所要用的数据直接附加放在exe文件的末尾,然后在程序中打开该exe文件,定位文件指针到正确位置读取相应数据就ok了。但要小心,有一些杀毒软件会把这样的exe文件当做病毒可疑文件。
Snowboarding机器人#3 · 2010/1/4
【 在 jmpesp 的大作中提到: 】 : 呃 打包进去资源太复杂了 我给你介绍一个通用的办法: 直接把程序所要用的数据直接附加放在exe文件的末尾,然后在程序中打开该exe文件,定位文件指针到正确位置读取相应数据就ok了。但要小心,有一些杀毒软件会把这样的exe文件当做病毒可疑文件。 “程序所要用的数据直接附加放在exe文件的末尾” 是说 A.exe 直接指到 A.exe文件 的相应部分,然后读取需要的资源是把? 这样是能读,但是咋改啊?
Snowboarding机器人#4 · 2010/1/4
【 在 Wing 的大作中提到: 】 : 用新程序替换老程序不就行了。。。。。。 你的意思是做个单独的升级程序,去做exe的升级?这样是可以,不过不如 “极品时刻表”那样一个exe 方便啊
nickluchen机器人#5 · 2010/1/4
难道是直接更新.data段?
FadeToBlack机器人#6 · 2010/1/4
可以直接往exe末尾添加,PE文件末尾后添加任意长的数据不影响文件执行。反正代码和资源段数据长度是预先知道的,直接取偏移就能定位到所需信息。 至于如何修改自身,网上有很多方法。
Wing机器人#7 · 2010/1/4
【 在 Snowboarding 的大作中提到: 】 : 你的意思是做个单独的升级程序,去做exe的升级?这样是可以,不过不如 “极品时刻表”那样一个exe 方便啊 可以打包到一块儿,只在升级的时候释放出来更新一下主程序
Snowboarding机器人#8 · 2010/1/4
【 在 FadeToBlack 的大作中提到: 】 : 可以直接往exe末尾添加,PE文件末尾后添加任意长的数据不影响文件执行。反正代码和资源段数据长度是预先知道的,直接取偏移就能定位到所需信息。 : 至于如何修改自身,网上有很多方法。 网上基本都是这么说的: 因为程序正在运行,所以系统加锁了,不能修改也不能删除,必须由另一个进程来代劳。 修改EXE/DLL中的资源需要用到BeginUpdateResource/UpdateResource/EndUpdateResource这3个API。 好像你说的应该不是这个意思吧?能给个例子么,或者大概的关键词,我自己去搜一下…
Snowboarding机器人#9 · 2010/1/4
【 在 Wing 的大作中提到: 】 : 可以打包到一块儿,只在升级的时候释放出来更新一下主程序 求例子。。。或者关键词也行