Last edited by sPeC!; 11-20-2010 at 05:37 PM.
could kiss you, it works
To whoever trying to get this to work and it does not work, http://www.mmowned.com/forums/world-...ne-hook-3.html go there.
I've used ahook and updated the console app to get it working ! I never managed to get the version of the hook in this thread working, so I used Ahook.
Credits goes to Juju for the DLL (source someday plz ? ) and RivaLFr for some of the the memory reading code !
Enjoy
PS: fukmeimbroken, ur pm box is full, tried pming you to no avail !
Last edited by Millow; 11-20-2010 at 07:08 PM.
"What can be asserted without proof can be dismissed without proof." --- Christopher Hitchens
still have Problems with the GetLocalizedText!
im trying to get data out of the Auctionhouse with this code:
but all what i get back is "5" (i have search at AH before i have used the code)Code:LuaDoString("Totauctions = GetNumAuctionItems(\"list\")"); Totauctions = GetLocalizedText("Totauctions");
i mean i should get much more data as only the "5" = 5 Auctions.
someone a Idea what im doing wrong?
Greets CrimeTime
GetNumAuctionItems - World of Warcraft Programming: A Guide and Reference for Creating WoW AddonsCode:numBatchAuctions, totalAuctions = GetNumAuctionItems("list")
Tried to use ENDSCENE_IDX = 0xAC;//0xA8;
Doesn't work. Can somehow influences that I use the russian wow?
edit file: http://dl.dropbox.com/u/7381029/Program2.cs
We didn'T get it work too. Take a look into AHook http://www.mmowned.com/forums/world-...ne-hook-3.html ([C# DLL] aHook, use ASM through EndScene hook) like millow said, worked for us.
thanks that works, but i see i have write the wrong problem, the current problem is
i get only the Name of the Item, and not the other Data, i've see that some people do Split the incoming Data but i cant Split something because i get only the Name and not the full Data String.Code:LuaDoString("count = GetAuctionItemInfo(\"list\"," + index + ")"); return GetLocalizedTextInt("count");
Edit: Got it workin, a shame that i didnt know how to do that ^^
Last edited by CrimeTime; 11-21-2010 at 10:25 AM.
Anyone knows what the step variable stands for ? It's equal to 0xE9 and is used to determine if the process is hooked.
"What can be asserted without proof can be dismissed without proof." --- Christopher Hitchens
0xE9 is JMP. It's checking if the detour has been applied.
nevermind I worked it out
Might as well post what my problem was. I couldn't figure out why the OP was adding 0xc to the stack pointer in DoString. Turns out you need to increment the sp by the size of the parameter list for the stack pointer to be in the right place and for code to to keep going smoothly, or something? I needed to do the same thing for ConsoleWriteA("lala", 4) and ended up adding 0x8 to esp for the char* and int, or execution would screw up afterwards.
Last edited by reggggg; 01-22-2011 at 11:43 PM.
Hasn't understood, where it is necessary to add?nevermind I worked it out
Might as well post what my problem was. I couldn't figure out why the OP was adding 0xc to the stack pointer in DoString. Turns out you need to increment the sp by the size of the parameter list for the stack pointer to be in the right place and for code to to keep going smoothly, or something? I needed to do the same thing for ConsoleWriteA("lala", 4) and ended up adding 0x8 to esp for the char* and int, or execution would screw up afterwards.
Specify please a line.
The original 'Hooking()" function was wrong. There was an error in the ASM.
Code:application.Asm.Clear(); application.Asm.AddLine("mov edi, edi"); application.Asm.AddLine("push ebp"); application.Asm.AddLine("mov ebp, esp"); application.Asm.AddLine("pushfd"); application.Asm.AddLine("pushad"); //Test for waiting code application.Asm.AddLine("mov eax, [" + addresseInjection + "]"); application.Asm.AddLine("test eax, ebx"); application.Asm.AddLine("je @out"); //Execute waiting code application.Asm.AddLine("mov eax, [" + addresseInjection + "]"); application.Asm.AddLine("call eax"); //Copy pointer to return value application.Asm.AddLine("mov [" + retnInjectionAsm + "], eax"); application.Asm.AddLine("mov edx, " + addresseInjection); application.Asm.AddLine("mov ecx, 0"); application.Asm.AddLine("mov [edx], ecx"); //Close Function application.Asm.AddLine("@out:"); //Inject Code uint sizeAsm = (uint)(application.Asm.Assemble().Length); application.Asm.Inject(injected_code); int sizeJumpBack = 5; // create jump back stub application.Asm.Clear(); application.Asm.AddLine("jmp " + (pEndScene + sizeJumpBack)); application.Asm.Inject(injected_code + sizeAsm);// + (uint)sizeJumpBack); // create hook jump application.Asm.Clear(); // $jmpto application.Asm.AddLine("jmp " + (injected_code)); application.Asm.Inject(pEndScene);
FenixTX2, thx.
Has corrected the code as you have offered. Cycling in the same place:
The code entirely: http://dl.dropbox.com/u/7381029/Program.csCode:while (Memory.ReadInt(addresseInjection) > 0) { Thread.Sleep(5); } // Wait to launch code