2017-11-24 19:43 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000220Cheat Enginepublic2013-04-14 02:22
Reporterablonevn 
Assigned ToDark Byte 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusresolvedResolutionfixed 
Summary0000220: wrong lua symhandler for local
Descriptionfollowing code is working fine (when ce attached to target process):
showMessage(getAddress("MessageBoxA"))
but following code will produce error: "Error:Failure determining what MessageBoxA means"
showMessage(getAddress("MessageBoxA",true)).

I think add symhandler to ce it self is a good choice, with that user even can combine autoassambler & lua function to register a new lua native function at runtime from inside ce, or manipulate directly with winapi function. eg: you donot provide "getCurrentLuaState" function but user can hocking ce's lua_pcall to get CE's luaState with serveral assembly line instead writing a dll plugin to do that.
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0000472

Dark Byte (developer)

Add errorOnLookupFailure(false) in front of your script so getAddress returns nil

Not sure what you mean with the other part
You can already add symbols to the symbolhandler in ce using "registerSymbol(symbolname, address, OPTIONAL donotsave)"
Auto assembler can read lua global functions using the $ sign in front of the name
e.g. Let's say you have the lua variable bla with the address of something, then you can do mov eax,$bla to set eax to the variable of bla. (Only valid when the script is executed, doesn't update afterwards)

~0000473

ablonevn (reporter)

Last edited: 2013-02-03 15:50

uh, no, i mean the function showMessage(getAddress("MessageBoxA",true)) always failed. here is my code. the purpose is get lua_pcall address.
--method 1:
errorOnLookupFailure(false)
autoAssemble([[
alloc(newmem,1024)
registersymbol(newmem)
newmem:
dd lua_pcall
]],true)
showMessage(string.format("%x",readIntegerLocal(getAddress("newmem",true))));
--method 2:
showMessage(string.format("%x",getAddress("lua_pcall",true)));
showMessage(string.format("%x",getAddress([[lua5.1-32.lua_pcall]]",true)));
showMessage(string.format("%x",getAddress([["lua5.1-32.dll"+23D0]],true)));


the method 1 worked fine, whatever i'm set errorOnLookupFailure to true or false, but method 2 wont work, i through you are using same function to lookup lua_pcall, but it seem you don't, so method 2 don't work.
and for other part, i saw you want export bit-wise operator to ce (in main.lua in svn), i just think about add it through lua-script & assembler to export real lua_cfunction to lua script, but i'm used svn so the method 1 won't worked.

~0000508

Dark Byte (developer)

fixed in the svn
+Notes

-Issue History
Date Modified Username Field Change
2013-02-03 09:37 ablonevn New Issue
2013-02-03 11:35 Dark Byte Note Added: 0000472
2013-02-03 15:11 ablonevn Note Added: 0000473
2013-02-03 15:14 ablonevn Note Edited: 0000473
2013-02-03 15:18 ablonevn Note Edited: 0000473
2013-02-03 15:25 ablonevn Note Edited: 0000473
2013-02-03 15:26 ablonevn Note Edited: 0000473
2013-02-03 15:28 ablonevn Note Edited: 0000473
2013-02-03 15:50 ablonevn Note Edited: 0000473
2013-04-14 02:22 Dark Byte Note Added: 0000508
2013-04-14 02:22 Dark Byte Status new => resolved
2013-04-14 02:22 Dark Byte Resolution open => fixed
2013-04-14 02:22 Dark Byte Assigned To => Dark Byte
+Issue History