您现在的位置是:首页 > 软件下载 > 编程开发 > 编程工具 >
CE自动汇编:AA引擎通用DLL v1.20 b13 绿色版

CE自动汇编:AA引擎通用DLL v1.20 b13 绿色版
宝哥软件园收集的CE自动汇编直译器: AA引擎 各语言通用DLL - aa_engine.dll三个函数, 原型如下:1. 运行CE AA脚本bool AutoAssembleHANDLE hProcess, char * aa_script, int command;1. hProcess: 游戏句柄2. aa_script: CE AA自动汇编脚本3. command:,欢迎免费下载体验
软件大小:183KB
软件类型:国产软件
软件语言:简体中文
软件授权:试用软件
最后更新:2021-08-31 17:02:16
推荐指数:
运行环境:WinAll, WinXP
查看次数:
CE自动装配识字器: AA发动机通用DLL-aa_engine.dll
三个函数, 原型如下:
1).运行CE AA脚本 bool AutoAssemble(HANDLE hpprocess,char * aa_script,int command); 1).hProcess:游戏手柄 2).aa_script: CE AA(自动装配)脚本 3).命令: 1正在运行[启用],0正在运行[禁用] 4).返回:如果运行成功,返回true如果失败,返回false 2).记下地址 DWORD GetAddress(HANDLE HpProcess,char * address _ line); 1).hProcess:游戏手柄 2).address_line:地址表达式,支持指针偏移模块基址AA脚本制作的人工指针游戏空间中存在的API 3).返回成功的返回地址:如果失败则返回0 3).以AA发动机版本号为例 char * Ver(); 返回版本号(文本) 简单语言数据类型比较: Int,DWORD,HANDLE=整数类型 Char *=文本类型或字节集类型(引用检查) Bool=逻辑类型或整数类型 VC2008动态调用DLL方法: HMODULE HDll=LoAdLibrarY(TEXT(' aa _ engine . dll '));//加载DLL //调用自动装配 typedef BOOL(FAR WINAPI * PROC1)(HANDLE,char*,int); PROC1 pAutoAssemble=(PROC1)GetProcAddress(hDLL,‘autoassembly’); (pAutoAssemble)(hpprocess,aa_script,1); //调用GetAddress typedef DWORD(FAR WINAPI * PROC2)(HANDLE,char *); PROC2 pGetAddress=(PROC2)GetProcAddress(hDLL,‘GetAddress’); DWORD addr=(pGetAddress)(hpprocess,addr _ line); //调用Ver typedef char *(FAR WINAPI * PROC3)(); PROC3 pVer=(PROC3)GetProcAddress(hDLL,‘Ver’); char * ver=(PVer)(); 自由图书馆(HDll);//发布DLL -更新beta 12:
1.(flaot)和(double)转换 2.DQ司令部 更新测试版13: 1.汇编代码的自动更正功能中增加了错误处理功能 -关于AA引擎
1).以标准的WINAPI(__stdcall)格式导出函数,所有语言都可以用一般声明API的方式调用这些函数 2).需要VS2008SP1运行时(仅4MB) 3).有些功能需要Vista或XP SP1或以上版本 4).可以任意改名,比如XXX修饰语。dll 5).UPX 3.08已经用于压缩和外壳,这是无毒的 万一出现任何误报,你可以用upx . exe-DAA _ engine.dll来保护自己。 脱壳后原尺寸约160k K。 6).AA引擎从CE 5.61的Delphi源代码中移除,移植了AA脚本文字翻译器 加上OD的汇编编译器(disasm)源代码作为心脏 I axdx只负责移植整合手术,所有技术都来自CE和OD 7)7)的最初开发目的。AA引擎是一个CheatMaker插件PC_AA.dll 8).特别感谢:银河漫步,十六夜?流媒体歌曲 - 自动装配功能描述 一、目前支持的CE AA功能如下 分配 标签 注册符号 注销符号 内存 完全访问(有一些限制,并非所有内存区域都有效) Aobscan(支持使用?或*表示未知字节) Createthread(无论脚本写在哪里,该命令始终是脚本的最后一次运行) 规定 释放资源 Assert(支持使用?或*表示未知字节) readmem 地址表达式可用于地址:行(参见GetAddress函数的描述) DB、DW、DD、DQ和dq命令分别是单字节、双字节、四字节和八字节阵列写入 #123代表小数 (int)123也代表十进制 (浮点)单精度浮点数(4字节) (双)双精度浮点数(8字节) 示例: mov [eax],(浮点)3.5 dd(浮动)123.5(浮动)100 丹麦克朗(双倍)200.75 有三种标注方式: //单行/*多行*/{多行} 支持调用游戏空间中存在的Win API符号 示例: 在游戏中调用两个API 首先调用消息框a显示“BYE BYE”消息 然后调用ExitProcess结束游戏过程 [启用] alloc(newmem,4096) 标签(文本) newmem: 推送0 推送0 推送文本 推送0 呼叫messageboxA 推送0 调用exitprocess 浸水使柔软 文本: db 42 59 45 20 42 59 45 0/“BYE BYE” createthread(newmem) [禁用] dealloc(newmem) 二、自定义符号表和人工指针 您可以在AA脚本中添加自定义符号,如下所示 寄存器符号(指针) 指针,4 或者只能使用一条线 globalalloc(指针,4) 以上两种方法将指针符号添加到自定义符号表中 并为指针动态分配4字节的内存空间 我们不需要知道这个4字节空间的正确地址 我们只需要用名字指针来表示地址 接下来,您可以使用指针作为人工指针,并将游戏数据的有效地址放入其中 因为自定义符号表由所有使用AA引擎的脚本共享, 包括所有其他AA脚本,该脚本启动后可以直接使用[指针]作为地址。 因为指针代表alloc分配的动态地址, 人工指针实际上存储在地址指针上 因此,它通常以[指针]的形式使用 您也可以使用GetAddress函数直接获取指针本身的地址或其中的人工指针[指针]的地址 当指针不再使用时,指针符号名称和分配的内存空间可以取消,如下所示 注销符号(指针) 指针 七、汇编代码编写注意事项: 由于OD汇编编译器的使用,其汇编代码格式比CE更严格 不过我增加了汇编代码自动更正功能 例如,它必须写成mov dword ptr [exa ebx*4 0c],0c8 它可以直接写成mov [eax ebx*4 c],c8 如果仍然出现编译错误,这意味着自动更正无法更正,请通过以下方式自行更正代码 1).出现“未知标识符”编译错误时 汇编编译器可能无法正确识别寄存器、指令和值 解决办法是,所有的数值,如果它们以英文字母开头,如A到F,前面都是0 如果c写成0c,A8B300写成0A8B300。 2).命令不支持给定的运算符 或“无法识别的命令”错误, 它可能是错误的数据长度 一般来说,如果长度没有命名,它将总是被视为4字节的长度 例如mov [esi 30],3f800000 将自动转换为mov dword ptr [esi 30],3f800000然后发送给编译器 如果出现此编译错误,请自行指定正确的数据长度 数据长度有以下表示形式: 单字节字节接收器 双字节字ptr 四字节dwrod ptr 八、目前不支持的CE AA功能: 加载库 loadbinary 包括 九.外部代码区: CE的AA脚本分为三段:【启用】、【禁用】和外码 外部代码区是指[ENABLE]之前的区域,也可以称为前缀区 无论您选择[启用]还是[禁用],此处输入的代码都将运行 它会在这里。这通常是不可能的 X.这款AA发动机:的专属功能 Assert2(地址、字节数组、“可选错误消息”) 该函数与assert相同,但有可选的错误信息 示例:assert2 (00081048,12ff3c78,'错误的游戏版本!') Aobscan2(名称,字节数组,起始地址,结束地址,命中目标,'可选错误消息!') 功能和aobscan一样,设置很多。如果不显示错误信息,请使用“”表示没有信息 示例1: AOB扫描2 (AOB开始,12 34 56 78,0040000,7fffffff,1,'错误的游戏版本!') 示例2: AOB扫描2 (AOB开始,12ff3c78,0,7fffffff,1 ' ') 上面的例子2相当于aobscan XI。其他注意事项: AA引擎通过脚本内容区分不同的脚本 脚本运行后[启用],运行前[禁用] 不能对脚本进行任何更改,包括任何空白回车或注释 否则,它将被视为不同的脚本,像dealloc这样的命令将无法正常工作 - GetAddress函数描述 接受地址表达式并返回最终地址 地址表达式目前支持: 1.基址-*操作 2.指针表达式[[[xxxxxxx]xx]xx]xx]
示例:
[[0040de00]-4] c
3.模块基址偏移(此功能需要Vista或XP SP1或以上版本的支持)
英语不区分大小写。为了区分大小写,可以使用“”包装模块名称。
示例:
game.exe
game.exe 27d 0
game.dat 38c
Game.exe' 27D0
kernel32.dll
4.可以使用AA脚本生成的符号(人工指针)
在AA脚本中添加自定义符号后,可以直接使用
如果符号是指针
示例:
指针//获取alloc为指针符号本身分配的地址
[指针] //获取指针中存储的人工指针
需要使用AA字面翻译:http:///soft/29289.html