同人星球BBS -> 游戏修改 -> [CE教程] Auto assemble 中可以使用的命令 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

修改众 08-08-21 02:57

从CE的帮助中复制出来的。翻译自己想办法。

总结1下,主要是这几个命令

LABEL(labelname)标签
ALLOC(allocname,sizeinbytes)分配内存
DEALLOC(allocname) 撤销分配的内存
FULLACCESS(address,size) 让内存可以读写
REGISTERSYMBOL(symboname)注册别名给地址
UNREGISTERSYMBOL(symbolname) 撤销注册别名
DEFINE(name,whatever)简写代码
INCLUDE(filename) 读取其它CT文件
LOADBINARY(address,filename)读取二进制文件
CREATETHREAD(address) 创建线程
LOADLIBRARY(filename) 读取dll文件
READMEM(address,size)读取指定地址的数据



Auto assemble allows you to write assembler code at different locations using a script. It can be found in the memoryview part of cheat engine under extra.

There are 3 special commands you can give it, ALLOC , LABEL and FULLACCESS. With LABEL you can give a address a name by declaring it before you use it. ALLOC is basicly the same as LABEL but allocates some memory for you.
Usage:

LABEL(labelname)
//Enables the word labelname to be used as a address
ALLOC(allocname,sizeinbytes)
//same as label, but allocates the memory it points to itself
DEALLOC(allocname)
//Deallocates a block of memory allocated with alloc. It always gets executed last, no matter where it is positioned in the code, and only actually frees the memory when all allocations have been freed.  only usable in a script designed as cheattable. (e.g used for the disable cheat)
FULLACCESS(address,size)
  //makes a memory region at the specified address and at least "size" bytes readable, writable and executable
REGISTERSYMBOL(symboname)
//adds the symbol to the userdefined symbol list so cheattables and the memory browser can use that name instead of a address (The symbol has to be declared in the script when using it)
UNREGISTERSYMBOL(symbolname)
//removes the symbol from the userdefined symbol list. It won't give a error if it isn't found
DEFINE(name,whatever)
//Will replace all tokens with the specified name with the text of whatever
INCLUDE(filename)
//includes another auto assembler file at that spot
LOADBINARY(address,filename)
//will load a binary file at the specified address
CREATETHREAD(address)
//Will spawn a thread in the process at the specified address
LOADLIBRARY(filename)
//Will inject the specified dll into the target process
READMEM(address,size)
//Will write the addresses at address at the location this instruction is placed


Example:
Basic
00451029:
jmp 00410000
nop
nop
nop

00410000:
mov [00580120],esi
mov [esi+80],ebx
xor eax,eax
jmp 00451031

LABEL
label(mylabel)

00451029:
jmp 00410000
nop
nop
nop
mylabel:

00410000:
mov [00580120],esi
mov [esi+80],ebx
xor eax,eax
jmp mylabel

ALLOC
alloc(memloc1,4)

00451029:
jmp 00410000
nop
nop
nop

00410000:
mov [alloc1],esi
mov [esi+80],ebx
xor eax,eax
jmp 00451031

ALLOC and LABEL
alloc(alloc1,4)
label(mylabel)

00451029:
jmp 00410000
nop
nop
nop
mylabel:

00410000:
mov [alloc1],esi
mov [esi+80],ebx
xor eax,eax
jmp mylabel


FULLACCESS
FULLACCESS(00400800,4) //00400800 is usually read only non executable data, this makes it writable and executable
00451029:
jmp 00410000
nop
nop
nop

00410000:
mov [00400800],esi
mov [esi+80],ebx
xor eax,eax
jmp 00451031

DEFINE
DEFINE(clear_eax,xor eax,eax)
00400500:
clear_eax

ReadMem
alloc(x,16)
alloc(script,2048)

script:
mov eax,[x]
mov edx,[x+c]
ret

x:
readmem(00410000,16) //place the contents of address 00410000 at the address of X


查看完整版本: [-- [CE教程] Auto assemble 中可以使用的命令 --] [-- top --]

Powered by PHPWind v5.3 Code © 2003-05 PHPWind
Time 0.048275 second(s),query:3 Gzip enabled

You can contact us