lchl0588
发表于 2010-6-13 22:04:13
关于这方面也没有玩过,不过“Fileinstall()”,感觉原理类似自解压!!!这个函数源文件是以字符串存在,而不是二进制存在!!!写起来需要两者来回转换!
理解有误之处,请见谅!
C.L
发表于 2010-6-13 22:13:29
回复 16# lchl0588
不是的,fileinstall()可含的不单是文本文件,也可以包含二进制的可执行文件,所以应该是以二进制的形式存在,写起来不用转换,直接操作二进制即可
水木子
发表于 2010-6-13 22:19:11
楼主这个问题提得确实不错,很深奥的问题哦!
俺这样的菜鸟帮不上什么忙!只好围观学习喽!
lchl0588
发表于 2010-6-13 22:19:51
我只是针对“源文件”所说,没说可含的要求(这个包含的多了),但源文件参数只接受字符串,到底能不能接受二进制,这方面偶未测试过!再说原理类似WINRAR自解压!
afan
发表于 2010-6-13 22:25:50
好像LS和C.L讨论的是两码事了,呵呵
lchl0588
发表于 2010-6-13 22:33:14
本帖最后由 lchl0588 于 2010-6-13 22:34 编辑
回复 20# afan
不错,他是从代码 中实现,而我从外部实现,但都往一个点走!
AU3用Fileinstall 包含的文件编译后,如:ini文件,不过目前的情况,并不能将脚本运行更改后的ini文件再注入到本身的exe中,每次运行都会重新释放原始的ini文件。已编译的EXE文件,感觉不太可能再注入了,最好调用“Fileinstall()”第二次自解压!!不过要注意顺序!
大家是否可以讨论一下,是否有可能将脚本编译后,运行时产生的与原始ini不同的ini文件在脚本退出时,注入到已编译的exe中,以便可以使用更新后的ini文件?
既然问题是我提出来的,我先说一下我自已的看法:
1、AU3可以用二进制读取文件的方式,而可执行文件exe也是二进制的文件,从理论上来看,是可以对这个二进制文件进行读写,所以,也就有了重新注入的可能性。
2、Fileinstall()的原理我不懂,不知道AU3是如何处理这种注入的文件,而且以这种方式包含的文件可能在已编译好的exe中可能也有严格的字节数限制(这是我的猜测,不知道实际上是不是这样),所以对这部份的包含的二进制改写可能不大行得通。
3、如果第2点行不通,那么是否可以编写代码来以二进制的方式自已注入文件,然后,在脚本完成将结束时自已重新注入已更改后的配置文件?这里有个问题,因为脚本运行时,是不能操作自身文件的,或者可以参考删除自身的代码?
欢迎参加讨论,我认为这个问题可能会有实用的意义,脚本运行时总是带着个小尾巴,看着总是有点不爽,而且有时将脚本copy时,忘了将这小尾巴一起copy,引起出错(我就有过)
补充:后来想起来,下面这点似乎用处更大:这个方法不单是为了注入配置文件,也可以注入图标库文件、可执行程序、等等,而且可以在使用的时候才提取出来,不象fileinstall那样,一运行就会将所有的文件都释放出来。
最后说下自个的感受:这个很类似系统封装,前调什么,中间运行什么,最后再干什么!!!!
说错之处,还是请谅解!
C.L
发表于 2010-6-13 22:48:20
回复 21# lchl0588
呵呵,没有关系啊,大家讨论嘛,有建议提出来,我很欢迎的。
已编译的EXE文件,感觉不太可能再注入了,最好调用“Fileinstall()”第二次自解压!!不过要注意顺序!
已编译的exe文件可以注入的,目前,我这里的代码已经可以实现单个文件的注入和提取,只是现在考虑的是,支持多文件,并且要记录文件名、文件字节数大小等信息,如果按我的思路,并且可以用AU3创建的GUI中显示并提取。现在还有一个考虑是:能否将用这种方法注入的ini配置文件,不用提取到文件,直接加载到内存里读取(这个想法只是想法,已有点思路,不知道能不能行得通)
水木子
发表于 2010-6-13 22:56:11
回复lchl0588
呵呵,没有关系啊,大家讨论嘛,有建议提出来,我很欢迎的。
已编译的exe文件可 ...
C.L 发表于 2010-6-13 22:48 http://www.autoitx.com/images/common/back.gif
呵呵!有突破,不错不错,这样一来不是可以做个“文件保险箱”啦!
hzxymkb
发表于 2010-6-14 10:17:35
水木子都来了!我也来围观一下!
C.L
发表于 2010-6-15 08:23:00
第一阶段,向自身已编泽的exe中注入文件,并在AU3的listview中显示,这一段代码已改造为WinAPI读写,已基本完成,我这里测试正常,现放到这里来,让大家测试一下。
代码说明:
现在只支持一个文件的注入和提取,这部份测试没有问题的话,下一步再加入多文件的注入:
现放上源码,有兴趣的可以自已写代码,增加新的功能,如果有朋友增加了新的功能的话,请放一份代码到这个贴,先谢谢了。
附件:(包含三个文件,BinfileInstall.au3,这文件属于UDF的,可include使用,test.au3,和一个已编译好的test.exe,这个exe中已注入有文件)
C.L
发表于 2010-6-15 08:26:45
本帖最后由 C.L 于 2010-6-15 08:34 编辑
照惯例,上个图,看得比较清楚一点
如果那位高手看了代码,有什么更好的思路,请指点一下,先谢谢了。
yejier1983
发表于 2010-6-15 09:38:59
现在是有点技术含量的代码 都要被当做毒杀掉
chenronting
发表于 2010-6-15 09:41:43
超级强大。 小菜鸟。 不好发表什么意见 。先围观。
menfan1
发表于 2010-6-15 14:44:24
呵呵,学习一下。。
zcx880517
发表于 2010-6-16 00:00:28
学习个了。。支持