找回密码
 加入
搜索
楼主: C.L

[效率算法] 【已解决】AU3脚本编译后是否可以将运行时更改的如ini文件注入到自身exe中

 火... [复制链接]
发表于 2010-6-16 14:41:44 | 显示全部楼层
路过、看贴  回贴````
 楼主| 发表于 2010-6-16 19:58:25 | 显示全部楼层
没有测试问题的报告?如果没什么问题的话,那就准备下一阶段支持实时注入多文件的代码编写了,做好后准备做成UDF,这样以后用起来就方便点了

希望大家能够帮忙测试一下啊,难道没什么人对这个问题感兴趣?
发表于 2010-6-16 22:09:04 | 显示全部楼层
没有测试问题的报告?如果没什么问题的话,那就准备下一阶段支持实时注入多文件的代码编写了,做好后准备做 ...
C.L 发表于 2010-6-16 19:58



    说真的,各有各忙,加上端午节和世界杯,呵呵
是金子总会发光的
继续默默支持!!

评分

参与人数 1金钱 +30 收起 理由
C.L + 30 谢谢支持

查看全部评分

发表于 2010-6-16 22:14:03 | 显示全部楼层
我也只能默默支持,高难度的东西…… 没有时间学习~

评分

参与人数 1金钱 +30 收起 理由
C.L + 30 谢谢支持

查看全部评分

发表于 2010-6-16 23:08:24 | 显示全部楼层
默默支持!!!!!!!!!!!

评分

参与人数 1金钱 +30 收起 理由
C.L + 30 谢谢支持

查看全部评分

发表于 2010-6-17 00:02:35 | 显示全部楼层
是啊!并不是不感兴趣,只是帮不上什么忙,只好默默的支持着!期待LZ进一步的突破。

评分

参与人数 1贡献 +1 收起 理由
C.L + 1 谢谢支持

查看全部评分

 楼主| 发表于 2010-6-17 08:15:27 | 显示全部楼层
本帖最后由 C.L 于 2010-6-17 08:17 编辑

谢谢楼上几位的支持。
说真的,各有各忙,加上端午节和世界杯,呵呵
是金子总会发光的
继续默默支持!!


是啊,端午节+世界杯,的确很忙,这几天我也是看世界杯看得白天精神不是太好,昨晚边看世界杯边写代码,代码已经基本写完成,多文件支持、文件添加、文件删除、文件名自动识别更新(如果内含有此文件就更新,而不是重新添加)、支持AU3界面实时显示、添加和提取等,这些功能已基本实现。
还差一点功能未完成,就是内含INI文件不用提取,直接读入内存进行读取,这功能是想让INI文件不用提取就可以使用,应该有点价值值得支持一下。

评分

参与人数 1金钱 +100 贡献 +5 收起 理由
lynfr8 + 100 + 5 谢谢您为AU3技术的提高而孤身奋战!

查看全部评分

发表于 2010-6-17 11:33:18 | 显示全部楼层
学习的好材料
 楼主| 发表于 2010-6-17 13:14:00 | 显示全部楼层
向自身exe文件注入UDF,经过一段时间的研究,终于有点结果了,现在基本功能已经完成,可以发一个测试版了
在此先谢谢参与回贴讨论的所有朋友,谢谢你们的热心回贴。

代码已发在UDF区,有兴趣的朋友可以到下面的链接下载代码:
http://www.autoitx.com/forum.php ... id=16292&extra=

附上完成后的UDF的简单介绍,详细情况请到上面的链接查看
; =======================================================================

; 名称: 已编译后程序文件注入UDF

; 描述        : 可对已编译后的程序进行文件的注入

;                (程序正在运行时,是对临时文件进行模似操作,程序退出时,会自动更新到本程序中)

;运行环境:必须是脚本代码编译成exe文件后,才能正常运行

;AutoIt Version        : AutoIt v3 ++

;感谢:  此 UDF 两个Hex读写函数根据本论坛 my788521整理的代码改写,在此特别表示感谢

;        此 UDF 两个内置 InI 读取根据本论坛 Afan 提供的代码改写,在此特别表示感谢

;        另外,对本论坛提供源码的所有朋友,感谢你们无私的贡献

; 作者        : C.l ---- www.autoitx.com 

; =======================================================================



;========================================================================

;已编译后程序文件注入UDF使用说明:

;

;下面的 “文件名”,均为要本程序的临时文件,也可以是其他没有在运行中的二进制文件(即可实现外部读写)

;此代码考虑到内含文件的特性,好象没有必要支持太多的文件,所以文件表($TableSize)预设为一个扇区大小

;        默认支持最多为15个文件注入,

;        注入文件名使用24个字节保存,如果文件名长度大于24个字节(每个汉字占两个字节),将不注入

;

;添加内含文件:_AddNewHexFile($BackupFilePath, $TagNewFile = "")

;                        _AddNewHexFile(文件名,要注入的文件名)

;                                        

;删除内含文件:_DeleteHexFile($BackupFilePath, $delfileName)

;                        _DeleteHexFile(文件名, 要删除的内含文件名)

;

;清空碎片:_DelEmptyBlock($BackupFilePath, $TableSize = 512)

;                        _DelEmptyBlock(文件名, 内含文件表大小(默认512字节,一个扇区))

;                        本函数作用:将刷新文件、删除文件后产生的碎片清空,释放空间,文件操作过多后运行,

;                                                文件大小将会减少很多。

;                        此操作如果内含文件太多和太大,可能比较占用CPU.注意使用

;

;读取文件列表:_ReadFileInfo($BackupFilePath, $TableSize = 512)

;                        _ReadFileInfo(文件名, 文件表大小(默认512字节))

;                        函数运行后,如果有内含文件,返回一个内含文件的信息的一维数组

;                                数组内字符串信息如下:文件名|文件大小|文件开始偏移量

;                        

;文件保存: _HexFileSaveas($OutputFileName, $Offset, $FileSize):

;                        _HexFileSaveas(输出文件名, 内含文件偏移量, 内含文件大小)

;                                内含文件偏移量和内含文件大小,这两个参数,可调用_ReadFileInfo()得到

;

;内含INI文件字段名读取: _memoryIniReadSectionNames($MemoryIniFile, $Offset, $FileSize, $mode = 0, $flag = 1)

;                        _memoryIniReadSectionNames(内含文件名,文件偏移量,文件大小,读取模式,标志)

;                        内含文件偏移量和内含文件大小等参数,可调用_ReadFileInfo()得到

;                        此函数可直接读取内含的InI文件,而不必将INI文件提取后读取 (由Afan代码改写而成)

;                        些函数返回一个由字段名组成的一维数组

;内含INI文件值读取:_MemoryIniReadSection($MemoryIniFile, $Offset, $FileSize, $Section, $mode = 0)

;                        _MemoryIniReadSection(内含文件名, 偏移量, 文件大小, 字段名, 读取模式)

;                        此函数返回由字段内的数据组成的二维数组        

;                

;回写函数:_Selfcopy($iDelay = 3)

;                        _Selfcopy(延时)

评分

参与人数 1贡献 +5 收起 理由
lynfr8 + 5 厉害、佩服

查看全部评分

发表于 2010-6-17 15:05:01 | 显示全部楼层
没有发现被注入的程序大小有变化???
 楼主| 发表于 2010-6-17 15:21:40 | 显示全部楼层
回复 40# 卫和谐

正在运行的exe文件是不可写的,添加后已经可以对文件进行操作,程序关闭时会自动进行回写

你把程序关闭后看看是不是有变化?
发表于 2010-6-18 14:14:36 | 显示全部楼层
太深奥了   还得继续努力才行
发表于 2012-4-25 12:59:51 | 显示全部楼层
虽然没太搞懂是干什么的,但是觉得很高深,并且以后以后,慢慢学习
发表于 2018-11-11 08:44:32 | 显示全部楼层
谢谢分享,学习学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 23:43 , Processed in 0.071981 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表