菜鸟问题,请高手解答.感谢!!
是关于16进制编辑的问题,我用UE修改一个EXE文件,比如要修改里面的一个字符串%d为%I64d,显然修改完成多出了两个字节,保存EXE文件,EXE文件错误,无法运行.
怎么样修改才能让EXE文件正确运行呢?
问题点数:100、回复次数:8Top
1 楼tzk(听钟客)回复于 2005-06-11 06:56:51 得分 0
你想把修改一个字符并增加一个字符?
你只能修改,一般情况下不能增加。Top
2 楼bohut(●伯虎● )回复于 2005-06-11 07:45:25 得分 0
%I64d是什么,楼主可否说清楚一些?Top
3 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2005-06-11 09:02:57 得分 20
除了修改字符串,还需要修改文件长度,去看看PE文件格式.Top
4 楼qrlvls( 空 气 )回复于 2005-06-11 09:17:25 得分 0
%I64d? 不解Top
5 楼glcsgf(无所谓)回复于 2005-06-11 09:46:22 得分 0
我修改的其实是EXE中一段针对MSSQL的数据进程,%I64d其实指的是一个bigint行数据的存储长度,它在数据库中的精度为18个字节~~~
在这里我们直接把它当成一个字符串看待就可以了.Top
6 楼liuyan4794(青牛)回复于 2005-06-11 10:19:27 得分 20
有改PE的软件Top
7 楼keiy()回复于 2005-06-11 11:22:27 得分 20
exe文件一般不能插入修改,且UE对16进制的编辑功能没有winhex好用
%d为%I64d,你看看后面有没有不影响其它数据的空间Top
8 楼qrlvls( 空 气 )回复于 2005-06-11 11:54:09 得分 40
修改字符串资源是允许的,但是好象vsprintf对整数输出没有那么多位数Top




