找回密码
 加入
搜索
查看: 11974|回复: 37

[系统综合] AUTOIT能创建建DLL不?

 火... [复制链接]
发表于 2012-5-8 23:55:56 | 显示全部楼层 |阅读模式
如题................
发表于 2012-5-9 00:13:19 | 显示全部楼层
二进制(16进制)创建文件?
发表于 2012-5-9 05:45:03 | 显示全部楼层
回复 1# xunfengcn


    答案是肯定的
发表于 2012-5-9 08:15:47 | 显示全部楼层
回复 3# xms77


    求真相。能编译成DLL吗?
发表于 2012-5-9 08:20:41 | 显示全部楼层
回复  xunfengcn


    答案是肯定的
xms77 发表于 2012-5-9 05:45



    请给出你“肯定”的答案,让我也学习一下,百思也想不出如何让au3从代码生成DLL,求真相
发表于 2012-5-9 09:20:10 | 显示全部楼层
回复 5# happytc


    答案确实是肯定的。就是肯定不行,哈哈!
   这个早就有人研究过了,脚本语言要生成dll,痴心妄想。
发表于 2012-5-9 18:49:47 | 显示全部楼层
自己手动编译,手动创建PE头,手动构造导出表、导入表、重定位表。用DllStruct*的几个函数应该可以了,最后结合FileOpen、FileWrite两个函数将机器码写入文件中就好了。

评分

参与人数 1金钱 +50 贡献 +11 收起 理由
xms77 + 50 + 11 谢谢解围

查看全部评分

发表于 2012-5-9 19:19:42 | 显示全部楼层
围观等结论并学习
发表于 2012-5-9 20:49:35 | 显示全部楼层
本帖最后由 xms77 于 2012-5-9 20:51 编辑

回复 8# pusofalse
就等着P版来帮我解围了,呵呵,谢谢!因为P版曾经说过“谁说AU3不能编写操作系统的?”,所以我才能这样肯定的回答
发表于 2012-5-9 21:31:04 | 显示全部楼层
回复 10# xms77


    在学习PE文件结构时,曾经手动编译过一个EXE文件,功能就是一个Hello World小程序。调用了DllStruct*的几个函数,手动构建的文件头和导入表,代码十分冗余,没保存,具体的实现代码已经忘得差不多了。
编译成DLL也是同样原理,因为EXE和DLL两种文件的格式都是一样的,区别在于DLL一般情况下都有导出表和重定向表,而EXE一般情况下则没有这两种表,只是一般情况,不是绝对的,EXE也可以有导出表和重定向表。有了导出表,可以直接DllCall来调用EXE中的函数,再也不必创建新的进程并传递参数。有了重定向表,可以直接用DllCallAddress来调用EXE中的代码,同样不必多开进程。

评分

参与人数 2金钱 +40 贡献 +3 收起 理由
楼上风云 + 10 + 1 P版开个新贴给大伙扫盲科谱吧
haijie1223 + 30 + 2 P侠都是在哪学到的这些东西

查看全部评分

发表于 2012-5-9 21:54:59 | 显示全部楼层
原来EXE和DLL有这样的区别
发表于 2012-5-9 22:01:16 | 显示全部楼层
回复 11# pusofalse
虽然不是很理解,但是还是学到了点东西,感谢P版!
发表于 2012-5-10 09:35:32 | 显示全部楼层
自己手动编译,手动创建PE头,手动构造导出表、导入表、重定位表。用DllStruct*的几个函数应该可以了,最后 ...
pusofalse 发表于 2012-5-9 18:49



    肯定不行吧,你说的这些,只是构建DLL的文件结构而已,而如何填冲这个DLL的内容呢?关键的关键的东西没有呀:我们知道,编译中最核心的一环就是如何把源代码文件(这里当然就是au3的代码了)翻译成等价的目标文件,也就是如何把abc.au3译成abc.obj?

评分

参与人数 1金钱 +20 收起 理由
haijie1223 + 20 脚本语言好像不可能

查看全部评分

发表于 2012-5-10 22:28:44 | 显示全部楼层
实际一点,不能。
发表于 2012-5-10 22:57:03 | 显示全部楼层
好高深,看不懂
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-9 02:37 , Processed in 0.076857 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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