Difference between revisions of "Lua:splitDisassembledString"

From Cheat Engine
Jump to navigation Jump to search
(Related Functions)
m
Line 55: Line 55:
 
{{LuaSeeAlso}}
 
{{LuaSeeAlso}}
  
=== Related Functions ===
+
{{Assembly}}
* [[Lua:disassemble|disassemble]]
 
* [[Lua:getInstructionSize|getInstructionSize]]
 
* [[Lua:getPreviousOpcode|getPreviousOpcode]]
 
* [[Lua:AOBScan|AOBScan]]
 
* [[Lua:autoAssemble|autoAssemble]]
 
* [[Lua:readBytes|readBytes]]
 
* [[Lua:readPointer|readPointer]]
 
* [[Lua:writeBytes|writeBytes]]
 
* [[Lua:readBytesLocal|readBytesLocal]]
 
* [[Lua:readPointerLocal|readPointerLocal]]
 
* [[Lua:writeBytesLocal|writeBytesLocal]]
 
* [[Lua:wordToByteTable|wordToByteTable]]
 
* [[Lua:dwordToByteTable|dwordToByteTable]]
 
* [[Lua:qwordToByteTable|qwordToByteTable]]
 
* [[Lua:floatToByteTable|floatToByteTable]]
 
* [[Lua:doubleToByteTable|doubleToByteTable]]
 
* [[Lua:stringToByteTable|stringToByteTable]]
 
* [[Lua:wideStringToByteTable|wideStringToByteTable]]
 
* [[Lua:byteTableToWord|byteTableToWord]]
 
* [[Lua:byteTableToDword|byteTableToDword]]
 
* [[Lua:byteTableToQword|byteTableToQword]]
 
* [[Lua:byteTableToFloat|byteTableToFloat]]
 
* [[Lua:byteTableToDouble|byteTableToDouble]]
 
* [[Lua:byteTableToString|byteTableToString]]
 
* [[Lua:byteTableToWideString|byteTableToWideString]]
 

Revision as of 00:19, 5 December 2025

function splitDisassembledString(DisassembledString) : (string, string, string, string - nil)

Slipts a disassembler string, returning 4 strings. The address, bytes, opcode and extra field. To be used with return from disassemble.

Function Parameters

Parameter Type Description
DisassembledString string The disassembled string to split


Examples

 local addr = getAddress('00123ABC')
 local disassStr = disassemble(addr)
 local extraField, opcode, bytes, address = splitDisassembledString(disassStr)
 local addr_2 = addr + getInstructionSize(addr)
 local disassStr_2 = disassemble(addr)
 local extraField_2, opcode_2, bytes_2, address_2 = splitDisassembledString(disassStr)


Code:

 local addr = getAddress('Tutorial-x86_64.exe+164A7')
 local disassStr = disassemble(addr)
 local extraField, opcode, bytes, address = splitDisassembledString(disassStr)
 for i = 1, 10 do
   local a = getNameFromAddress(address) or address
   local b = bytes .. string.rep(' ', 20 - #bytes)
   local o = opcode .. string.rep(' ', 30 - #opcode)
   print(string.format('%s:  %s  -  %s    %s', a, b, o, extraField))
   addr = addr + getInstructionSize(addr)
   disassStr = disassemble(addr)
   extraField, opcode, bytes, address = splitDisassembledString(disassStr)
 end

Output:

 Tutorial-x86_64.exe+164A7:  48 63 40 3C           -  movsxd  rax,dword ptr [rax+3C]     
 Tutorial-x86_64.exe+164AB:  48 8D 04 03           -  lea rax,[rbx+rax]                  
 Tutorial-x86_64.exe+164AF:  48 8B 40 60           -  mov rax,[rax+60]                   
 Tutorial-x86_64.exe+164B3:  90                    -  nop                                
 Tutorial-x86_64.exe+164B4:  48 8D 64 24 20        -  lea rsp,[rsp+20]                   
 Tutorial-x86_64.exe+164B9:  5B                    -  pop rbx                            
 Tutorial-x86_64.exe+164BA:  C3                    -  ret                                
 Tutorial-x86_64.exe+164BB:  00 00                 -  add [rax],al                       
 Tutorial-x86_64.exe+164BD:  00 00                 -  add [rax],al                       
 Tutorial-x86_64.exe+164BF:  00 53 48              -  add [rbx+48],dl   


See also

Lua
Script Engine

Related Functions

autoAssemble
autoAssembleCheck
disassemble
splitDisassembledString
getInstructionSize
getPreviousOpcode
registerAssembler
unregisterAssembler