比如设置字体/设置颜色/默认路径/安全密码等等,
一般的做法都是用配置文件(如 .ini)或注册表,
感觉这样做很有弊端,比如说,换台电脑又要重新配置/或者连同配置文件拷贝,
时常造成一些不便。
所以,想请教大家:
有没有办法可以把配置的相关信息都放在本身的exe文件中,这样,只需要拷贝一个文件即可,
有了解这方面信息的请指导一二,先谢过了!
16 个解决方案
#1
感觉有点难,EXE在执行的过程中是不能被修改的。
#2
自我理解是,一般软件都将配置信息保存在外部文件中,执行时读取配置信息。
当然可以为用户提供选项,如:勾选相应选项,执行不同操作等,但下一次执行exe,还将是默认操作。
exe属于PE文件,能捆绑文件,很多病毒都这样做的,但满足上述要求,还期待高手解答。
当然可以为用户提供选项,如:勾选相应选项,执行不同操作等,但下一次执行exe,还将是默认操作。
exe属于PE文件,能捆绑文件,很多病毒都这样做的,但满足上述要求,还期待高手解答。
#3
可以,但是比较麻烦,而且涉及到不少类似病毒的操作,会被杀毒软件报毒。
#4
在不考虑杀毒软件的情况下,
可以详细点说说大概怎样做吗?
或者给点相关资料也行,
#5
可以在程序的最后添加一个数据附加段,来填写你的配置,不过这样的话,你需要动态去获取便宜读取数据
#6
感觉要沉了…………
#7
帮顶……
原先看过一篇文章,讲可黑客程序的,在exe文件尾部写入信息。
第一种方法,用UltraEdit软件,把exe程序尾部增加一部分空间。
整个过程不需要得到原文件的长度,而且也能保证写到最后。相应的,读取的代码如下:
貌似灰鸽子的配置信息就是写入资源里的。
其实还有一种简单的方法就是,编程时先留好空间。然后直接找到对应的字节,替换之。原理行得通,没弄过这块儿,希望对你有帮助,同时等待高手……
原先看过一篇文章,讲可黑客程序的,在exe文件尾部写入信息。
第一种方法,用UltraEdit软件,把exe程序尾部增加一部分空间。
CFile openoriginalfile;
openoriginalfile.Open(originalfile, CFile::modeReadWrite);
openoriginalfile.Seek( -sizeof(NAMES), CFile::end ); //这个NAMES就是我要保存的配置的一个struct,下面的n是具体的NAMES的对象
openoriginalfile.Write( &n, sizeof(NAMES) );
openoriginalfile.Close();
整个过程不需要得到原文件的长度,而且也能保证写到最后。相应的,读取的代码如下:
CFile myfile;
myfile.Open(myfilename, CFile::modeRead);
myfile.Seek( -sizeof(NAMES), CFile::end );
myfile.Read( &n, sizeof(NAMES) );
貌似灰鸽子的配置信息就是写入资源里的。
其实还有一种简单的方法就是,编程时先留好空间。然后直接找到对应的字节,替换之。原理行得通,没弄过这块儿,希望对你有帮助,同时等待高手……
#8
#9
#10
open file用正规的麻烦的API也是可以写的,叫Volume Shadow Copy Service.lz找下Microsoft VSSSDK.
#11
主程序a.exe将要写的信息写入同目录ini
配置信息写完后,通过资源生成预先配置程序b.exe
当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息
当关闭b时,删除ini,并通过生成bat方式实现自删除
配置信息写完后,通过资源生成预先配置程序b.exe
当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息
当关闭b时,删除ini,并通过生成bat方式实现自删除
#12
5 楼的方法应该可以,楼主试试,
#13
11楼的做法是主流做法,看看WinRAR , 将数据文件和执行文件放入同一个可执行文件,点击运行后,在当前程序目录下建一个run的目录,解压到所有文件到run目录,并锁定文件(防止别人误删),并执行可执行文件, 在可执行文件执行完后,将run下的文件重新打包,替换之前的文件.
#15
关注
#16
尝试
#1
感觉有点难,EXE在执行的过程中是不能被修改的。
#2
自我理解是,一般软件都将配置信息保存在外部文件中,执行时读取配置信息。
当然可以为用户提供选项,如:勾选相应选项,执行不同操作等,但下一次执行exe,还将是默认操作。
exe属于PE文件,能捆绑文件,很多病毒都这样做的,但满足上述要求,还期待高手解答。
当然可以为用户提供选项,如:勾选相应选项,执行不同操作等,但下一次执行exe,还将是默认操作。
exe属于PE文件,能捆绑文件,很多病毒都这样做的,但满足上述要求,还期待高手解答。
#3
可以,但是比较麻烦,而且涉及到不少类似病毒的操作,会被杀毒软件报毒。
#4
在不考虑杀毒软件的情况下,
可以详细点说说大概怎样做吗?
或者给点相关资料也行,
#5
可以在程序的最后添加一个数据附加段,来填写你的配置,不过这样的话,你需要动态去获取便宜读取数据
#6
感觉要沉了…………
#7
帮顶……
原先看过一篇文章,讲可黑客程序的,在exe文件尾部写入信息。
第一种方法,用UltraEdit软件,把exe程序尾部增加一部分空间。
整个过程不需要得到原文件的长度,而且也能保证写到最后。相应的,读取的代码如下:
貌似灰鸽子的配置信息就是写入资源里的。
其实还有一种简单的方法就是,编程时先留好空间。然后直接找到对应的字节,替换之。原理行得通,没弄过这块儿,希望对你有帮助,同时等待高手……
原先看过一篇文章,讲可黑客程序的,在exe文件尾部写入信息。
第一种方法,用UltraEdit软件,把exe程序尾部增加一部分空间。
CFile openoriginalfile;
openoriginalfile.Open(originalfile, CFile::modeReadWrite);
openoriginalfile.Seek( -sizeof(NAMES), CFile::end ); //这个NAMES就是我要保存的配置的一个struct,下面的n是具体的NAMES的对象
openoriginalfile.Write( &n, sizeof(NAMES) );
openoriginalfile.Close();
整个过程不需要得到原文件的长度,而且也能保证写到最后。相应的,读取的代码如下:
CFile myfile;
myfile.Open(myfilename, CFile::modeRead);
myfile.Seek( -sizeof(NAMES), CFile::end );
myfile.Read( &n, sizeof(NAMES) );
貌似灰鸽子的配置信息就是写入资源里的。
其实还有一种简单的方法就是,编程时先留好空间。然后直接找到对应的字节,替换之。原理行得通,没弄过这块儿,希望对你有帮助,同时等待高手……
#8
#9
#10
open file用正规的麻烦的API也是可以写的,叫Volume Shadow Copy Service.lz找下Microsoft VSSSDK.
#11
主程序a.exe将要写的信息写入同目录ini
配置信息写完后,通过资源生成预先配置程序b.exe
当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息
当关闭b时,删除ini,并通过生成bat方式实现自删除
配置信息写完后,通过资源生成预先配置程序b.exe
当主程序a响应WM_CLOSE时候,ShellExecute打开b并向b.exe发生自定义消息。
b接到自定义消息后,找不到A窗口句柄时,读取ini并在a中预留位写入配置信息
当关闭b时,删除ini,并通过生成bat方式实现自删除
#12
5 楼的方法应该可以,楼主试试,
#13
11楼的做法是主流做法,看看WinRAR , 将数据文件和执行文件放入同一个可执行文件,点击运行后,在当前程序目录下建一个run的目录,解压到所有文件到run目录,并锁定文件(防止别人误删),并执行可执行文件, 在可执行文件执行完后,将run下的文件重新打包,替换之前的文件.
#14
#15
关注
#16
尝试