Problems calling VMT Function 47 menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 17
  1. #1
    djvoid's Avatar Member
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Problems calling VMT Function 47

    So I'm stumped (and still new), so I thought I'd throw this out there. I've been setting up my framework and encountered The Strange(tm). About 30% of the code is your tasty copypasta, for the parts that I dont fully understand (I cant write assembly yet).

    The code for calling VMT 47 was pulled from wowbasic2.0, and I just updated the VMT GetName offset per Cyphers post to 0x2f. I also updated the AllocateMemory to 0x1000 - per a suggestion I read on Shynds blog (I'm pretty sure it was Synds blog, its all a blur, been reading a ton).

    Code:
    public static object GetName(cObject Obj)
            {
               Trace.WriteLine(string.Format("Getting name for GUID: {0}", Obj.GUID));
               
                ProcessMemory memory = Obj.Owner.Memory;
                int number = memory.AllocateMemory(0x1000);
                Clipboard.SetText(Conversion.Hex(number));
                int num2 = number + 100;
                int num = number + 200;
                int vTableFuncPtr = Obj.GetVTableFuncPtr(0x2f);
                int num4 = number + 300;
                string asmStr = "8B-15-18-33-D4-00-8B-92-18-22-00-00-64-A1-2C-00-00-00-3E-8B-00-05-08-00-00-00-3E-89-10-8B-0D-I1-FF-15-I2-89-05-I3-C3";
                asmStr = asmStr.Replace("I1", BitConverter.ToString(BitConverter.GetBytes(num))).Replace("I2", BitConverter.ToString(BitConverter.GetBytes(num2))).Replace("I3", BitConverter.ToString(BitConverter.GetBytes(num4)));
                memory.WriteInt32(num2, vTableFuncPtr);
                memory.WriteInt32(num, Obj.BaseAddress);
                memory.WriteBytes(number, StrToBytes(asmStr));
                memory.CallFunction(number);
                int address = memory.ReadInt32(num4);
                return memory.ReadString(address, 0x20);
            }
    CallFunction, also ripped from wowobasic2.0

    Code:
    internal void CallFunction(int FuncAddress)
            {
                int hObj = _CreateRemoteThread(hProcess, 0, 0, FuncAddress, 0, 0, 0);
                WaitForSingleObject(hObj, 0x2710);
                CloseHandle(hObj);
            }
    What is interesting, is that after updating the offset, it worked great, and did for a couple days. Then all of a sudden, it starts throwing a memory read exception in WoW. I thinker with things (blindly for the most part), then its working again. Then its not. Its not a consistent failure which worries me.

    I also threw in a trace write to confirm is always the same object being checked, and it indeed is.

    Code:
    ERROR #132 (0x85100084) Fatal Exception
    Program:	C:\Program Files\World of Warcraft\WoW.exe
    Exception:	0xC0000005 (ACCESS_VIOLATION) at 0023:06480006
    
    The instruction at "0x06480006" referenced memory at "0xEB7B008E".
    The memory could not be "read".
    I could do without being able to access this function, but I'd like to be able to use other VMT methods as well - can anyone point me in the right direction to investigate? Or maybe just tell me whats going on here? Clearly its trying to read where it shouldnt, but why shouldnt it?

    Too bad I ordered Reversing with painfully-slow 'Super Saver Shipping' lol

    Oh, and I <3 IDA (even though I dont know how to really take advantage of it yet)

    Problems calling VMT Function 47
  2. #2
    djvoid's Avatar Member
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I suspect it may be a threading issue - as I'm going the event-driven approach.

  3. #3
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow. I mean, I just want to say right now that I honestly know where you're coming from, having been a big fan of the copy pasta for a long time, but that code is just ugly (and it's most likely not your fault, as the guy who wrote WoWBasic didn't really know what he was doing too much).

    http://www.mmowned.com/forums/wow-me...ml#post1162121. Use something like that. The 'as-yet unreleased memory library' or whatever I referenced in that post has been alpha-released here.

  4. #4
    djvoid's Avatar Member
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Alright I'll do that, I did download that memory library, but I still have my unfounded nervousness surrounding dll injection - and looking at the code, it seemed like it was doing that heavily.

    I guess the truth of it is, I don't mind if I get caught/banned - I don think I care nearly as much as I used to, and this is just way too interesting/fun.

    Thanks

  5. #5
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It's not injecting a dll any more than WoWBasic is, just provides the functionality if you were to do that. Both WoWBasic and that link I sent you inject a code stub into the WoW address space to call the GetName function. That's all.

  6. #6
    djvoid's Avatar Member
    Reputation
    1
    Join Date
    Nov 2008
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Alright, thank you - I appreciate your help

  7. #7
    bigtimt's Avatar Active Member
    Reputation
    41
    Join Date
    Mar 2008
    Posts
    100
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    sorry to revive the old thread but i'm really don't think you have the right to bash me shynd seeing as half your ideas from black magic you got from looking at my source code. just because you executed my ideas better, don't make them yours.

  8. #8
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes, I definitely took your stupid ****ing ideas and made them my own. The only thing I did that's even remotely similar to your dumbass WoWBasic piece of crap is the FASM implementation, and even that I took further than you did and wrote entirely without looking at your code. HOLY GOD THEY SHARE AN 'AddLine' METHOD THEY OBVIOUSLY MUST BE EXACTLY THE SAME AND SINCE HE WROTE HIS AFTER MINE IT MUST BE A DIRECT RIP. Stop ****ing talking, moron.

    To be entirely clear, the only thing I got from you was the idea to re-look at FASM as a JIT assembler. I never looked at your code other than to explain how you did things to others when you couldn't be ****ed to do so yourself and I certainly never would have stolen anything from you, seeing as you do not know what you are doing.
    Last edited by Shynd; 01-13-2009 at 06:57 PM.

  9. #9
    bigtimt's Avatar Active Member
    Reputation
    41
    Join Date
    Mar 2008
    Posts
    100
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    they share more than .Addline. that is all i have to say, ur further comments will be ignored, shouldn't have payed any attention to you downing me anyhow. even cypher and kynox didn't insult me.

  10. #10
    Shynd's Avatar Contributor
    Reputation
    97
    Join Date
    May 2008
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Exactly what do they share, other than the AddLine method? What? What's that? Nothing? That's what I thought. Anything else they share is coincidental based on how things work. Of course they're going to share some sort of OpenProcess method or maybe even an InjectDll method or something similar, but your WoWBasic POS was WoW-specific, whereas BlackMagic had no WoW-specific things in it and was built, by me, from the ground up, as a culmination of about 8-10 other classes that I had written on a by-need basis over the past 3 or 4 years. In fact, I have documented progression sitting in my projects folder. So, seriously, **** off you whiny bastard.

  11. #11
    luciferc's Avatar Contributor
    Reputation
    90
    Join Date
    Jul 2008
    Posts
    373
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    /waits for Shynd to knife him and bigtimt why bump a ****ing 2 month old thread?

    Wow seriously stop being a retard.

    Your just like those guys who say they got a patent for Games that operate from Mulitpile Stations and or Networks Interconnected allowing play with eachother.

  12. #12
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bigtimt View Post
    they share more than .Addline. that is all i have to say, ur further comments will be ignored, shouldn't have payed any attention to you downing me anyhow. even cypher and kynox didn't insult me.
    From looking at the source... the only similarities is the AddLine method and the Win32 imports. The methods to actually read memory are the same. Why? Because there's really only 1 way to do it. Both of you get your heads out of your asses.

  13. #13
    bigtimt's Avatar Active Member
    Reputation
    41
    Join Date
    Mar 2008
    Posts
    100
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    lol i'm gonna get laughed at for saying this but i just have sensitive feelings and do not like the way that shynd has treated me when i was just trying to help

  14. #14
    arigity's Avatar Banned
    Reputation
    49
    Join Date
    Dec 2007
    Posts
    548
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the Internet is full of retards, you'd be better off just ignoring them.

  15. #15
    luciferc's Avatar Contributor
    Reputation
    90
    Join Date
    Jul 2008
    Posts
    373
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bigtimt View Post
    lol i'm gonna get laughed at for saying this but i just have sensitive feelings and do not like the way that shynd has treated me when i was just trying to help
    Wow.... Just wow

Page 1 of 2 12 LastLast

Similar Threads

  1. Calling Lua Functions from DLL
    By Viano in forum WoW Memory Editing
    Replies: 19
    Last Post: 07-28-2009, 07:56 PM
  2. Problems calling ObjectByGuid / Console stuff
    By SKU in forum WoW Memory Editing
    Replies: 18
    Last Post: 03-16-2009, 05:16 PM
  3. Calling LUA Functions
    By cloud_wizard in forum WoW Memory Editing
    Replies: 7
    Last Post: 01-04-2009, 08:24 AM
  4. Call lua function and get result
    By starfish99 in forum WoW Memory Editing
    Replies: 4
    Last Post: 12-26-2008, 05:15 AM
  5. Replies: 1
    Last Post: 08-26-2008, 10:49 PM
All times are GMT -5. The time now is 06:45 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search