How to execute LUA function and get it's result? menu

User Tag List

Results 1 to 3 of 3
  1. #1
    piiters's Avatar Corporal
    Reputation
    5
    Join Date
    May 2010
    Posts
    20
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How to execute LUA function and get it's result?

    Hi all!

    Searched the forum, but couldn't clearly understand: how do i execute LUA function from outside wow process (from bot for example) and get it's result? I saw few realizations how to do it but i'm still confused.

    Let's try an example. I have a script:
    Code:
    /script ChatFrame1:AddMessage(UnitClass("player"));
    When i put it in the macro, it executes just fine and gives correct result. But how do i get function result from outside? in ollydbg i found that function UnitClass looks like this:
    Code:
    006D5F60  /. 55             PUSH EBP
    006D5F61  |. 8BEC           MOV EBP,ESP
    006D5F63  |. 83EC 08        SUB ESP,8
    006D5F66  |. 57             PUSH EDI
    006D5F67  |. 8B7D 08        MOV EDI,DWORD PTR SS:[EBP+8]
    006D5F6A  |. 6A 01          PUSH 1                                   ; /Arg2 = 00000001
    006D5F6C  |. 57             PUSH EDI                                 ; |Arg1
    006D5F6D  |. E8 9E2EDBFF    CALL Wow.00488E10                        ; \Wow.00488E10
    006D5F72  |. 83C4 08        ADD ESP,8
    006D5F75  |. 85C0           TEST EAX,EAX
    006D5F77  |. 75 15          JNZ SHORT Wow.006D5F8E
    006D5F79  |. 68 88A5A000    PUSH Wow.00A0A588                        ; /Arg2 = 00A0A588 ASCII "Usage: UnitClass("unit")"
    006D5F7E  |. 57             PUSH EDI                                 ; |Arg1
    006D5F7F  |. E8 9CE92900    CALL Wow.00974920                        ; \Wow.00974920
    006D5F84  |. 83C4 08        ADD ESP,8
    006D5F87  |. 33C0           XOR EAX,EAX
    006D5F89  |. 5F             POP EDI
    006D5F8A  |. 8BE5           MOV ESP,EBP
    006D5F8C  |. 5D             POP EBP
    006D5F8D  |. C3             RETN
    006D5F8E  |> 53             PUSH EBX
    006D5F8F  |. 56             PUSH ESI
    006D5F90  |. 33DB           XOR EBX,EBX
    006D5F92  |. 53             PUSH EBX                                 ; /Arg3 => 00000000
    006D5F93  |. 6A 01          PUSH 1                                   ; |Arg2 = 00000001
    006D5F95  |. 57             PUSH EDI                                 ; |Arg1
    006D5F96  |. E8 F52FDBFF    CALL Wow.00488F90                        ; \Wow.00488F90
    006D5F9B  |. 83C4 0C        ADD ESP,0C
    006D5F9E  |. 68 FFFFFF7F    PUSH 7FFFFFFF                            ; /Arg3 = 7FFFFFFF
    006D5FA3  |. 8BF0           MOV ESI,EAX                              ; |
    006D5FA5  |. 68 E02D9E00    PUSH Wow.009E2DE0                        ; |Arg2 = 009E2DE0 ASCII "player"
    006D5FAA  |. 56             PUSH ESI                                 ; |Arg1
    006D5FAB  |. E8 1036E8FF    CALL Wow.005595C0                        ; \Wow.005595C0
    006D5FB0  |. 85C0           TEST EAX,EAX
    006D5FB2  |. 75 41          JNZ SHORT Wow.006D5FF5
    006D5FB4  |. E8 17A0F4FF    CALL Wow.0061FFD0
    006D5FB9  |. 8B0D BCBDA800  MOV ECX,DWORD PTR DS:[A8BDBC]
    006D5FBF  |. 0FB6C0         MOVZX EAX,AL
    006D5FC2  |. 3BC1           CMP EAX,ECX
    006D5FC4  |. 7C 15          JL SHORT Wow.006D5FDB
    006D5FC6  |. 3B05 B8BDA800  CMP EAX,DWORD PTR DS:[A8BDB8]
    006D5FCC  |. 7F 0D          JG SHORT Wow.006D5FDB
    006D5FCE  |. 2BC1           SUB EAX,ECX
    006D5FD0  |. 8B0D CCBDA800  MOV ECX,DWORD PTR DS:[A8BDCC]
    006D5FD6  |. 8B3481         MOV ESI,DWORD PTR DS:[ECX+EAX*4]
    006D5FD9  |. EB 02          JMP SHORT Wow.006D5FDD
    006D5FDB  |> 33F6           XOR ESI,ESI
    006D5FDD  |> 53             PUSH EBX
    006D5FDE  |. E8 FD9FF4FF    CALL Wow.0061FFE0
    006D5FE3  |. 0FB6D0         MOVZX EDX,AL                             ; |
    006D5FE6  |. 52             PUSH EDX                                 ; |Arg2
    006D5FE7  |. 56             PUSH ESI                                 ; |Arg1
    006D5FE8  |. E8 3381EEFF    CALL Wow.005BE120                        ; \Wow.005BE120
    006D5FED  |. 83C4 0C        ADD ESP,0C
    006D5FF0  |. E9 A1000000    JMP Wow.006D6096
    006D5FF5  |> 53             PUSH EBX
    006D5FF6  |. 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
    006D5FF9  |. 50             PUSH EAX
    006D5FFA  |. 56             PUSH ESI
    006D5FFB  |. 895D F8        MOV DWORD PTR SS:[EBP-8],EBX
    006D5FFE  |. 895D FC        MOV DWORD PTR SS:[EBP-4],EBX
    006D6001  |. E8 3AADFFFF    CALL Wow.006D0D40
    006D6006  |. 8B75 FC        MOV ESI,DWORD PTR SS:[EBP-4]             ; |
    006D6009  |. 8B7D F8        MOV EDI,DWORD PTR SS:[EBP-8]             ; |
    006D600C  |. 68 0A0A0000    PUSH 0A0A                                ; |Arg5 = 00000A0A
    006D6011  |. 68 709EA000    PUSH Wow.00A09E70                        ; |Arg4 = 00A09E70 ASCII ".\ScriptEvents.cpp"
    006D6016  |. 6A 08          PUSH 8                                   ; |Arg3 = 00000008
    006D6018  |. 56             PUSH ESI                                 ; |Arg2
    006D6019  |. 57             PUSH EDI                                 ; |Arg1
    006D601A  |. E8 71861300    CALL Wow.0080E690                        ; \Wow.0080E690
    006D601F  |. 83C4 20        ADD ESP,20
    006D6022  |. 3BC3           CMP EAX,EBX
    006D6024  |. 74 31          JE SHORT Wow.006D6057
    006D6026  |. 8B88 D0000000  MOV ECX,DWORD PTR DS:[EAX+D0]
    006D602C  |. 0FB649 45      MOVZX ECX,BYTE PTR DS:[ECX+45]
    006D6030  |. 8B15 BCBDA800  MOV EDX,DWORD PTR DS:[A8BDBC]
    006D6036  |. 3BCA           CMP ECX,EDX
    006D6038  |. 7C 17          JL SHORT Wow.006D6051
    006D603A  |. 3B0D B8BDA800  CMP ECX,DWORD PTR DS:[A8BDB8]
    006D6040  |. 7F 0F          JG SHORT Wow.006D6051
    006D6042  |. 2BCA           SUB ECX,EDX
    006D6044  |. 8B15 CCBDA800  MOV EDX,DWORD PTR DS:[A8BDCC]
    006D604A  |. 8B348A         MOV ESI,DWORD PTR DS:[EDX+ECX*4]
    006D604D  |. 53             PUSH EBX
    006D604E  |. 50             PUSH EAX
    006D604F  |. EB 3A          JMP SHORT Wow.006D608B
    006D6051  |> 53             PUSH EBX
    006D6052  |. 33F6           XOR ESI,ESI
    006D6054  |. 50             PUSH EAX
    006D6055  |. EB 34          JMP SHORT Wow.006D608B
    006D6057  |> 53             PUSH EBX                                 ; /Arg6
    006D6058  |. 53             PUSH EBX                                 ; |Arg5
    006D6059  |. 53             PUSH EBX                                 ; |Arg4
    006D605A  |. 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]             ; |
    006D605D  |. 50             PUSH EAX                                 ; |Arg3
    006D605E  |. 56             PUSH ESI                                 ; |Arg2
    006D605F  |. 57             PUSH EDI                                 ; |Arg1
    006D6060  |. B9 A092BB00    MOV ECX,Wow.00BB92A0                     ; |
    006D6065  |. 895D F8        MOV DWORD PTR SS:[EBP-8],EBX             ; |
    006D6068  |. 895D FC        MOV DWORD PTR SS:[EBP-4],EBX             ; |
    006D606B  |. E8 B0E3FDFF    CALL Wow.006B4420                        ; \Wow.006B4420
    006D6070  |. 8BF8           MOV EDI,EAX
    006D6072  |. 3BFB           CMP EDI,EBX
    006D6074  |. 74 48          JE SHORT Wow.006D60BE
    006D6076  |. 8B8F 48010000  MOV ECX,DWORD PTR DS:[EDI+148]
    006D607C  |. 51             PUSH ECX                                 ; /Arg1
    006D607D  |. B9 C4BDA800    MOV ECX,Wow.00A8BDC4                     ; |
    006D6082  |. E8 693FFCFF    CALL Wow.00699FF0                        ; \Wow.00699FF0
    006D6087  |. 57             PUSH EDI                                 ; /Arg2
    006D6088  |. 8BF0           MOV ESI,EAX                              ; |
    006D608A  |. 53             PUSH EBX                                 ; |Arg1
    006D608B  |> E8 D0D1EFFF    CALL Wow.005D3260                        ; \Wow.005D3260
    006D6090  |. 8B7D 08        MOV EDI,DWORD PTR SS:[EBP+8]
    006D6093  |. 83C4 08        ADD ESP,8
    006D6096  |> 3BF3           CMP ESI,EBX
    006D6098  |. 74 27          JE SHORT Wow.006D60C1
    006D609A  |. 3BC3           CMP EAX,EBX
    006D609C  |. 74 23          JE SHORT Wow.006D60C1
    006D609E  |. 50             PUSH EAX
    006D609F  |. 57             PUSH EDI
    006D60A0  |. E8 5B31DBFF    CALL Wow.00489200
    006D60A5  |. 8B56 1C        MOV EDX,DWORD PTR DS:[ESI+1C]            ; |
    006D60A8  |. 52             PUSH EDX                                 ; |Arg2
    006D60A9  |. 57             PUSH EDI                                 ; |Arg1
    006D60AA  |. E8 5131DBFF    CALL Wow.00489200                        ; \Wow.00489200
    006D60AF  |. 83C4 10        ADD ESP,10
    006D60B2  |. 5E             POP ESI
    006D60B3  |. 5B             POP EBX
    006D60B4  |. B8 02000000    MOV EAX,2
    006D60B9  |. 5F             POP EDI
    006D60BA  |. 8BE5           MOV ESP,EBP
    006D60BC  |. 5D             POP EBP
    006D60BD  |. C3             RETN
    006D60BE  |> 8B7D 08        MOV EDI,DWORD PTR SS:[EBP+8]
    006D60C1  |> 57             PUSH EDI
    006D60C2  |. E8 6930DBFF    CALL Wow.00489130
    006D60C7  |. 57             PUSH EDI                                 ; |Arg1
    006D60C8  |. E8 6330DBFF    CALL Wow.00489130                        ; \Wow.00489130
    006D60CD  |. 83C4 08        ADD ESP,8
    006D60D0  |. 5E             POP ESI
    006D60D1  |. 5B             POP EBX
    006D60D2  |. B8 02000000    MOV EAX,2
    006D60D7  |. 5F             POP EDI
    006D60D8  |. 8BE5           MOV ESP,EBP
    006D60DA  |. 5D             POP EBP
    006D60DB  \. C3             RETN
    don't know if it helps. atm i don't understand asm (can't wait till we'll learn asm in university ) i'm asking this because there are a lot of easy to use LUA fuctions that can be used in bots and i think that lots of people will find this very useful. Thankyou for reading this.

    P.S. some sample code would be great :wave:

    How to execute LUA function and get it's result?
  2. #2
    mnbvc's Avatar Banned
    Reputation
    120
    Join Date
    Jul 2009
    Posts
    273
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    1. you can't execute functions from outside, you have to be in process
    2. dostring and getlocalizedtext are the things you are looking for
    3. i doubt that you searched because there are alot of threads about this

  3. #3
    piiters's Avatar Corporal
    Reputation
    5
    Join Date
    May 2010
    Posts
    20
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok, thanks for pointing me to right direction. i think that i've searched in wrong direction...

Similar Threads

  1. IDA how to rename lua function ?
    By windhuan in forum WoW Memory Editing
    Replies: 3
    Last Post: 12-16-2016, 03:23 PM
  2. Call lua function and get result
    By starfish99 in forum WoW Memory Editing
    Replies: 4
    Last Post: 12-26-2008, 05:15 AM
  3. How to get into ZA w/o a group - and get free epics too!
    By Patchumz in forum World of Warcraft Exploits
    Replies: 47
    Last Post: 02-21-2008, 05:50 PM
  4. Replies: 12
    Last Post: 01-22-2008, 07:30 AM
  5. how to piss people off and maybe get ported by GM
    By shvaak in forum World of Warcraft Exploits
    Replies: 16
    Last Post: 11-06-2007, 06:43 PM
All times are GMT -5. The time now is 11:06 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search