关于写自身的方法(C++ ******高手请进******)
我想数据写到程序中,就像这个软件一样,http://jxsoftware.com/viewsoft.asp?id=12
把数据写到自身程序中,最好用C++方法写
问题点数:100、回复次数:22Top
1 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2004-12-03 11:13:46 得分 2
不明白楼主的意图Top
2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-12-03 12:23:02 得分 1
通过临时文件?Top
3 楼mywand(简单生活)回复于 2004-12-03 16:04:51 得分 0
就是把程序的设置放到程序文件中,就像1.exe文件的设置的东东也放到1.exe里,可以看看http://jxsoftware.com/viewsoft.asp?id=12这个程序Top
4 楼mywand(简单生活)回复于 2004-12-03 16:31:40 得分 0
最好有类似的源码,谢谢Top
5 楼somedummy(某人马甲)回复于 2004-12-03 16:45:39 得分 3
直接打开自身,然后写入就可以了,记住要添加在最后,还要保存一个size_t类型的数据在最后位置来标记写入的内容的大小Top
6 楼crystal521(【云淡风轻】)回复于 2004-12-03 16:46:19 得分 10
SDK编程笔记 — 计时器篇Top
7 楼crystal521(【云淡风轻】)回复于 2004-12-03 16:49:45 得分 10
错了错了
应该是将当前程序copy一份,将数据写入copy程序,然后启动copy程序,关闭当前程序Top
8 楼mywand(简单生活)回复于 2004-12-04 00:01:59 得分 0
能不能有源码参考一下?Top
9 楼C_M_()回复于 2004-12-04 09:08:28 得分 1
不能修改正在运行的程序吧?Top
10 楼mywand(简单生活)回复于 2004-12-04 21:24:39 得分 0
可以的,回复人: crystal521(水晶泪)说的不错,能不能具体点呀?Top
11 楼mywand(简单生活)回复于 2004-12-04 21:27:46 得分 0
谁能给出准确的答复, 170分全送!
还有70分在:http://community.csdn.net/Expert/topic/3610/3610714.xml?temp=.9323236Top
12 楼somedummy(某人马甲)回复于 2004-12-04 21:59:50 得分 5
用exec这个函数来执行命令的话,控制权不会返回给你的程序,控制的好的话,就靠这个估计应该可以奏效,不过这样的东西估计还是汇编比较容易解决……Top
13 楼maybelian(maybelian)回复于 2004-12-04 22:06:58 得分 50
不用这么麻烦,找到你要写的地址,调用VirtualQuery()函数查询被修改内存的页信息,
然后调用VirtualProtect()函数改变这些页的保护属性为PAGE_READWRITE,接着你就可以
任意修改进程内存数据,比如说你要修改pModAddress指针指向的进程虚拟地址的内容,可以参考如下代码:
BYTE *pModAddress=…… ;//指定要修改的地址
DWORD dwOldProtect;
MEMORY_BASIC_INFORMATION mbi_MemInfo;
//获取页信息
VirtualQuery(pModAddress, &mbi_MemInfo, sizeof(MEMORY_BASIC_INFORMATION));
//改变保护属性为读写。
VirtualProtect(mbi_MemInfo.BaseAddress,mbi_MemInfo.RegionSize, PAGE_READWRITE, &mbi_MemInfo.Protect);
*pModAddress=……;//写入你所要写的值
//恢复页的原保护属性。
VirtualProtect(mbi_MemInfo.BaseAddress,mbi_MemInfo.RegionSize,
mbi_MemInfo.Protect, &dwOldProtect);
Top
14 楼somedummy(某人马甲)回复于 2004-12-05 10:28:15 得分 10
……修改内存页……
如果这样的话就不要这么麻烦了,直接用进程空间读写的Win32 API就搞定了……Top
15 楼busade1()回复于 2004-12-05 20:31:07 得分 1
应该是这样的 楼主可试过 copy 1.exe+1.txt 1.exe 吗?之后的1.exe还是可以运行的,因为1.txt的内容只是被添加到了1.exe的尾部。
所以可以把程序的设置写到exe文件的结尾,自己安排好哪个参数在哪个位置,然后运行时从末尾读数据就行了。Top
16 楼YidingHe(机枪兵)回复于 2004-12-06 00:21:32 得分 1
我只知道VB.net不能写不安全代码。这种修改进程数据的搞法应该属于不安全代码吧?Top
17 楼gbbword(分不清)回复于 2004-12-06 11:00:20 得分 1
关注!Top
18 楼gxh973121()回复于 2004-12-06 12:01:53 得分 1
mark,jfTop
19 楼BruceJiang()回复于 2004-12-06 12:48:05 得分 1
关注!
Top
20 楼C_M_()回复于 2004-12-06 13:53:58 得分 1
……修改内存页……会修改程序的文件吗?Top
21 楼C_M_()回复于 2004-12-06 13:57:43 得分 1
他好像是要修改执行程序的文件。Top
22 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-10 18:48:10 得分 1
gzTop




