[转]一个超强的易语言编译器插件(黑月)

插件名: 黑月编译器插件

作者: 云外归鸟

网站:

黑月的用途

 黑月是类似于斩月,目的是将易语言程序小型化,脱离支持库运行的工具。但实现原理和方法又与斩月不同,不需要类似的斩月壳,而是分析并转化易程序为对象文件obj,再用链接器LINK.EXE重新编译链接。这样生成的黑月程序,具有更规范更优化的PE程序文件结构,并且带来更多的功能扩展(比如使用RC资源脚本生成PE标准资源),以及带来下好处:

  1、具有正常的PE可执行文件结构,经过反编译后生成的易程序代码清晰可见,xx呈现。汇编代码可分析可用专用软件跟踪调试,不会再产生误报。

  2、在脱离核心支持库的同时,又不废除原有核心库命令,而是转向调用功能类似的黑月核心库。就是说,黑月可以使用大部分的原核心库命令(非窗口操作),并且黑月核心库为本人模仿原核心库功能,再重新编写的静态库。由于黑月先天优势,可以静态库抽取代码片段合成编译,就是用到的命令函数才提取相应部分代码。不用到命令不合成到目标程序。这样的好处是既保持原有功能不变,又不使程序文件大小增加,附带冗余代码。
  易友们一直梦想的静态库抽取合成编译,今天在黑月已经实现了!
  (黑月支持的核心库命令看随后的附表)

  4、黑月可以使用PE标准资源,用RC脚本编译生成。比如使用资源对话框模板创建窗口,并配合可视化的黑月RC脚本编辑器,比斩月又多一种更方便的界面设计功能,而且与汇编和C语言的RC脚本兼容通用,使黑月程序更接近于常规程序。

  5、黑月的DLL可以使用类似其它语言DLLMAIN入口函数(黑月为“Dll入口函数”),可以通过DLL的模块句柄访问DLL的PE资源、注入进程、多线程应用等等优点。

  6、黑月可以突破易语言自身的限制,实现对__cdecl调用方式函数的支持,并且可以在编译时链接其它由C语言或MASM32汇编语言编写的静态库,这又大大的增强了功能扩展,对众多C语言代码资源的利用,和软件工程的协作开发创造了便利条件。

黑月工具的安装和使用:

  为了方便使用,黑月工具是以易语言编辑器的插件形式使用,出现在易编辑器的工具菜单里,与易IDE融合。在易语言编译生成EXE和DLL文件之后,随即自动加工处理,重新编译转化成黑月程序,不用自己选择程序文件(这个自动处理功能,可以通过黑月设置关闭,变为手动选择处理)。

  1、下载黑月安装程序之后,双击运行按提示说明,黑月必须安装在易语言安装目录。比如:C:\Program Files\e (e目录下的BlackMoon为黑月主目录,以及LIB里的BlackMoon.fne为支持库插件)

  2、安装黑月工具之后,需要在易编辑器菜单->工具->支持库配置,勾选“黑月编译器插件”支持库,如图:

图片1

如果没有什么意外,就会立即启动并运行黑月工具

工具菜单出现“黑月工具”和“黑月资源编辑器”菜单选项。

注意:如果勾选“黑月编译器插件”支持库时,易编辑器出错退出。这说明你的系统不支持黑月自动加工处理功能(部份原因是使用了xx版易语言)。
  遇到这种情况请自行编辑配置文件,比如:C:\Program Files\e\BlackMoon\BlackMoon.ini
修改配置内容:

[BlackMoon]
Run=0

  将禁止自动处理功能,这时再重新启动易编辑器,再次勾选“黑月编译器插件”支持库。但没有自动处理功能很不方便,而且如果要同时编译资源,RC脚本文件路径和名称也需要相应变化,这以后再详细了解。

  3、关闭自动处理功能和手动选择处理。易编辑器菜单->工具->黑月工具,将出现黑月的设置窗口,如图:


  “启动黑月编译器”选择框决定是否在易语言生成程序之后,自动处理成黑月程序。如果关闭,将不自动加工处理成黑月程序,恢复易编辑器原来的状态和功能。如果上系统不支持自动处理的,勾选这个功能将导致易编辑器出错。

  关闭开启这个功能,在易编辑器的输出窗口都有提示:

  4、使用和产生PE资源。易编辑器菜单->工具->黑月资源编辑器,将运行资源脚本编辑工具软件,如果当前源码已经保存到文件路径,并且没有与源码相配套的RC文件,将询问你是否创建同名的RC文件。

  如果已经创建有了,就会直接打开与源码相关的RC文件,编译时会自动编译RC脚本为PE资源,源码中使用专用API访问PE标准资源。

黑月资源编辑器主要的功能菜单如图所示:

  5、黑月程序编写的注意事项:
  (1)黑月兼容大部分的斩月程序,斩月源码若在黑月编译后上无法运行,请仔细排查。
  (2)黑月程序若使用链接静态库和使用__cdecl调用方式的DLL函数时,则不能调试运行(按F5),只能编译后才能运行(用信息框插入代替断点)。
  (3)请将易编辑器的“花指令插入级别”和“编译结果打乱码”关闭(设置为0),这两个功能影响黑月对易程序的分析。
  (4)如果使用4.13版本,请将版本信息功能关闭,菜单->程序->配置->({zd2}下选项)去掉选勾。使用黑月自己的资源脚本添加版本信息。否则会破坏生成的黑月程序,出现“不是有效的 Win32 应用程序。”的提示框。
  (5)黑月程序只能使用支持的核心库命令和API,不能使用易的窗口及组件和其它支持库,窗体界面用代码和资源对话框生成。
  (6)编写非控制台的黑月程序,可以在程序新建内先选择控制台程序(用_启动子程序),然后在“菜单->程序->配置”改成“Windows窗口程序”。

Leave a Reply

?
郑重声明:资讯 【[转]一个超强的易语言编译器插件(黑月)】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——