Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Perfect World > PW Hacks, Bots, Cheats, Exploits
You last visited: Today at 21:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Direct Injection Codes - Delphi/C++/AutoIt

Discussion on Direct Injection Codes - Delphi/C++/AutoIt within the PW Hacks, Bots, Cheats, Exploits forum part of the Perfect World category.

Reply
 
Old 05/01/2009, 21:58   #16
 
elite*gold: 0
Join Date: Mar 2008
Posts: 109
Received Thanks: 64
DLL injection has its own problem; most notable is easy detection by the game and thus resulted in accounts being banned.

While code injection can still be detectable, it is much harder if it is coded well.
vuduy is offline  
Old 05/02/2009, 02:44   #17
 
elite*gold: 0
Join Date: Mar 2007
Posts: 26
Received Thanks: 38
Quote:
Originally Posted by vuduy View Post
DLL injection has its own problem; most notable is easy detection by the game and thus resulted in accounts being banned.

While code injection can still be detectable, it is much harder if it is coded well.


not if you load the process in suspended state, inject the dll, unlink the module from the peb module lists and resume the process, or even better write a working pe loader.
toxic6666 is offline  
Old 05/03/2009, 03:21   #18
 
plixbugmenot's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 89
Received Thanks: 56
asgborges, I'm sorry but you are ignorant, and you know only half what you are talking about. Seriously, listen to toxic6666, he does know what he is talking about.
plixbugmenot is offline  
Thanks
2 Users
Old 05/03/2009, 17:12   #19
 
asgborges's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 29
Received Thanks: 54
Arrow

Quote:
Originally Posted by plixbugmenot View Post
asgborges, I'm sorry but you are ignorant, and you know only half what you are talking about. Seriously, listen to toxic6666, he does know what he is talking about.
i dun care with your opinion...!!! WTH

whats wrong with u guys?!
i don wanna make a perfect code or whatever... i just trying to make ppl "think" by urselves in other way instead to only changes addresses or pointers...

and im SHARING this half that i know!!!

* do you mind if i wanna a free world?!
asgborges is offline  
Thanks
1 User
Old 05/03/2009, 18:50   #20
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1
Received Thanks: 0
hmm say if i just want to make a bot i need to copy only the c++ stuff (i have c++ pogram)??
mor0051 is offline  
Old 05/04/2009, 00:25   #21
 
elite*gold: 0
Join Date: Mar 2007
Posts: 26
Received Thanks: 38
Quote:
Originally Posted by asgborges View Post
i dun care with your opinion...!!! WTH

whats wrong with u guys?!
i don wanna make a perfect code or whatever... i just trying to make ppl "think" by urselves in other way instead to only changes addresses or pointers...

and im SHARING this half that i know!!!

* do you mind if i wanna a free world?!

i posted in this thread because someone wanted to know how to make your code vc++ compatible, so i looked through the code and pointed out potential flaws that might lead to exceptions (especially in vc++), so that he can change his code accordingly to make it run. since you stated that you don't know about vc++, i added some vc++ inline asm specific stuff which i also had my problems with before i didn't know how vc++ handles inline asm (which it really does not handle very well). you stated this code was c++ compatible, but at least the inline asm part - might not - be vc++ compatible. so why not let someone correct it for some specific compiler.

then, for whatever reason, you went crazy on my post.

also your param passing to the remote thread IS a potential danger on any compiler. if you pass a buffer with an actual size lower than the size you read from it, there might always happen bad things. yaya, you wanna write a general function to pass more params, but still, if you code it like this in this special case, it IS a bad flaw, it doesn't matter what you COULD actually do if you DON'T do it (ok, you only read 256 bytes, which is probably not going to raise an exception, but still it is no proper programming).

just the same with your frame based exception handling in the remote code. yaya, if you did this and that you would be able to make it run (actually i doubt you would be able to make it run), but if you DON'T do it, and leave the code as it is, it IS another bad flaw. what does it help you if you raise an exception in the remote code and raise another exception because of broken exception handling.


and yes, your post is about remote code injection, still i made a little side note that dll injection is the way to go. what should i do? should i create a new thread telling everybody that dll injection is the way to go (which it obviously is)?

ya, your just setting a target in your code, it's a few lines to code a remote code injection. sure you can do it like this. but setting targets isnt the only thing your gonna do. at some point you will realize the advantages of dll injection, maybe not for now. i bet you that at some point you will get sick of resolving dynamic pointers and explicitly calling readprocessmemory to read anything.
hell, i wasnt even criticizing your method, actually i was just trying to help with the statement and again you went crazy. better change to dll injection now instead of later when you realize what i'm saying. i doubt anybody wants to call createremotethread and readprocessmemory a few hundred times per minute if you can do all this via direct memory reads and direct calls from a dll.

and again as for detectability remote code injection vs. dll injection...
first of all, even if you dont hide your dll, they cant ban you just for injecting a dll. if they did, everybody who has malware like userland rootkits that inject dlls into processes (and dont hide it) or some other shit on his system would get banned (there are also "good behaving" programs that inject dlls too). so they can actually only ban already known dlls.
what's bad about dll injection + hiding?
1) your threads will run in the target process
2) your dll still resides in the target process memory

about 1)
yaya, you can't completely hide a thread even with a rootkit because if you unlink it at the lowest possible level, windows won't give it execution time, so your thread will be paused forever. but still, you cant ban for finding threads that dont belong to the program, it can be something else than a bot.

about 2)
you can still strip unneeded information (like some headers, all import dll and name strings, etc.) or crypt some parts of it, which would make it really hard to identify a dll since such scanners would usually scan on page boundaries, but what, if there is no valid header?. since memory scanning the whole address space would use up a lot of system resources, this probably isnt really done too much anyways.

anyways, if i was a program and checked what was going on in my process, i would be a lot more suspicious, if some other program called readprocessmemory or createremotethread in my context a few hundred times per minute than if a dll was injected. what else than a bot would do something like this that often?

and im pretty sure that next generation anti cheat methods are going to be a combination of methods from blizz warden (dynamic download of the module or shell code) and 3rd party kernel level anti cheat tools that involve kernel level rootkit methods (i dont know whether this is allowed by law, but i think they can at least adjust their eula so that they may do it), which would make it even harder to access the process with api functions after the program has started. you wont have this problem with injected dlls that much since you wont be using such apis after the dll has been loaded (which should be done before the program runs its first instruction anyways). and hiding your process from a well coded kernel level anti cheat tool that knows what its doing, is like impossible as several programs on the net prove (over swapcontext etc.). so identifying a process over a hidden dll would be much easier.

so the statement that code injection was safer than dll injection is just not true, even more, if the anti cheat tool maximizes its possibilites, although both methods can be detected somehow.

maximum security would surely be to disable the anti cheat tool completely, which might take a lot of time of debugging depending on the tool, but if your looking for a general solution, hidden dll injection and switching from hooking game code to constant polling should be the way to go.

why do most (all?) professional bots that cost money come with a dll and maybe even a kmd anyway? why are they surviving for so long, although the game coders know it exists and can even debug its code if they purchase it (the imagination of the game coders purchasing a bot for their own game is pretty funny anyway, dont you think) or get their hands on it somehow else? probably not because its the wrong way to go..
toxic6666 is offline  
Thanks
2 Users
Old 05/04/2009, 03:15   #22
 
asgborges's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 29
Received Thanks: 54
Arrow

i dont using ANY direct call function budy... i just using own game LOOPS to do my job... thats the point!!

vuduy give me this direction, and im using... (you like or not) thats all!!!


1. I REALLY DONT WANNA A DLL!!
2. GO AHEAD.. MAKE YOUR THREAD!! (and stop this fool discussion)
asgborges is offline  
Old 05/04/2009, 03:35   #23
 
elite*gold: 0
Join Date: Mar 2008
Posts: 109
Received Thanks: 64
Hmm... Toxic6666, your post is too long; I'll make mine short.

If you are injecting DLL into a running process, you are actually injecting codes. The only difference is the code injected is to load your DLL.

The reason why I said that code injection is much harder to detect is because it leaves no trace of evidence; whereas your DLL (even if you try to hide it) still leaves some footprint behind.

That is why I said that if you write your code injection well, it is much harder to detect; and you do realize that Read/WriteProcessMemory is not the only way to do code injection right?

If you are only interested in making a full HP targeting function for PW, then 's code injection is all you need; on the other hand, if you want to make a multi-functional bot that uses many in-game function calls, then injecting DLL will be easier.

EDIT:

Quote:
Originally Posted by asgborges
i dont using ANY direct call function budy... i just using own game LOOPS to do my job... thats the point!!

vuduy give me this direction, and im using... (you like or not) thats all!!!
Pointer collection
I don't mean to be rude but the code you posted is not using any of the game process's loops. Your posted code actually uses CreateRemoteThread to execute the injected codes;

Also, the injected code DOES USE direct game function call.
Code:
004596BC - e8 8f c7 14 00             - call 005a5e50
The above code is an actual in-game function call to send the "lock-target" command to the server.

Anyway, you two don't need to compare your sizes any further; even if asgborges is not as knowledgable as toxic6666 about concepts of code injection, he is noble enough to share his findings with others.

And that is good enough in my book.
vuduy is offline  
Old 05/05/2009, 08:30   #24
 
elite*gold: 0
Join Date: Apr 2008
Posts: 24
Received Thanks: 32
interesting
psycheangel is offline  
Old 05/05/2009, 12:54   #25
 
BuBucekTop's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 160
Received Thanks: 28
plz attach here your elementclient.exe, for which your addresses are valid and injections work. I want to test 'em
BuBucekTop is offline  
Old 05/08/2009, 06:50   #26
 
elite*gold: 0
Join Date: Mar 2008
Posts: 6
Received Thanks: 1
I used injection with many functions(NormalAtt, FullTarget, RunTo etc...). And i use VC++ 2005 to compile it.

But the problem i had is a big problem. About 10-12h, My PW Client can't do anything, my pw sky changed to white screen and monster name was also abnormal. My character only stand and don't do anything with my bot's running. But if i closed that pw client, and opened another client, then logged in with that char, then started my bot again ... it worked again (botting)...

I don't know what happened, although i checked all, and don't see any mistake with my code ... does injection make the game become like that ?

Anyone know, pls help, thanks so much!!!
leovn is offline  
Old 05/08/2009, 12:04   #27
 
BuBucekTop's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 160
Received Thanks: 28
leovn, post your code here - we'll see what's wrong with it.
BuBucekTop is offline  
Old 05/08/2009, 15:44   #28
 
elite*gold: 0
Join Date: Mar 2007
Posts: 26
Received Thanks: 38
Quote:
Originally Posted by leovn View Post
I used injection with many functions(NormalAtt, FullTarget, RunTo etc...). And i use VC++ 2005 to compile it.

But the problem i had is a big problem. About 10-12h, My PW Client can't do anything, my pw sky changed to white screen and monster name was also abnormal. My character only stand and don't do anything with my bot's running. But if i closed that pw client, and opened another client, then logged in with that char, then started my bot again ... it worked again (botting)...

I don't know what happened, although i checked all, and don't see any mistake with my code ... does injection make the game become like that ?

Anyone know, pls help, thanks so much!!!




i never ran code for that long without disconnecting, but looks like you have a pointer problem.
you probably resolve some pointers only once at bot start time and use these pointers all the way through (which does work for some objects at least for a specific amount of time). your pointers probably become invalid at some point. maybe they do a complete data reset/reallocation at a specific time or after a specific amount of time has passed.
so if resolving pointers only once at bot start up is what your doing, i would change this and see if it works then.

at least what the game itself does, is, whenever it needs an object, it resolves its address from the very base (which is static) over and over again (thats at least the case for many objects).
toxic6666 is offline  
Old 05/09/2009, 21:01   #29
 
plixbugmenot's Avatar
 
elite*gold: 0
Join Date: Dec 2008
Posts: 89
Received Thanks: 56
Might be a memory leak or some resource leak... It is very important not to just call functions in a game, but actually finding out from where they are called, when, what other functions they call and what happens on the stack/heap. some functions might return a object with NEW and if you don't free that memory, instant memory leak, and that is only the best case scenario Also by giving incorrect paramters to functions, or forgetting some parameters you might go outside the bounds of some containters/arrays (some functions use registers to pass some parameters) and there is a whole other lot of issues you can run into, it is so much fun

anyway easy way to check for memory leaks: make an infinite loop that keeps calling the function, and open taskmgr, if you see the memory increase, you are not cleaning up properly and will eventually run into problems. Do this for all functions

Also toxic is right. It is not safe to resolve pointers once, you never know when the object will be deleted and created again... (like a mobmanager object may be deleted when entering an instance) so every time you need a pointer, resolve it! (or don't if you have a debugging fetish )
plixbugmenot is offline  
Old 05/12/2009, 04:44   #30
 
elite*gold: 0
Join Date: Mar 2008
Posts: 6
Received Thanks: 1
Quote:
Might be a memory leak or some resource leak
Yeah, i think so.

Quote:
anyway easy way to check for memory leaks: make an infinite loop that keeps calling the function, and open taskmgr, if you see the memory increase, you are not cleaning up properly and will eventually run into problems. Do this for all functions
When i minimize the client and start botting. About 50.000K (Mem Usage) was used, but about 10-12h, it was increased about 200.000K. (I use timer to loop when looking for a new monster)

Quote:
Also toxic is right. It is not safe to resolve pointers once, you never know when the object will be deleted and created again... (like a mobmanager object may be deleted when entering an instance) so every time you need a pointer, resolve it!
I only use the pointer when injecting, example:
static DWORD WINAPI SelectMonster(LPCVOID lpParam)
{
DWORD *Array = (DWORD*)lpParam;
DWORD MonsterID = *(Array + 0);
...
}

and 1 question: when i create a new pointer in a function, example: int *p; . When the function end, do i need to make p = NULL; ?
leovn is offline  
Reply


Similar Threads Similar Threads
AutoIT to Delphi Translation - 50 $
06/27/2010 - AutoIt - 0 Replies
Please delete.
Public Source Codes für Injection
02/04/2009 - General Gaming Discussion - 17 Replies
renameself: void Injection::command_renameself& #40;const arglist_t & args){ if(args.size() < 2){ client_print("usage ,renameself <newname>"); } string str; for(arglist_t::const_iter ator i = (args.begin()+1);i != args.end();i++){ str += *i; if(i+1 != args.end()) str += " ";
_MemoryPointerRead (autoit) in delphi
05/23/2008 - General Coding - 6 Replies
Hallo epvp coder Gruppe Ich hänge derzeit an folgendem Problem: In auto-it konnte man mit der "_MemoryPointerRead" Funktion einen Wert aus dem Speicher auslesen, zu dem man nur über einen Pointer(mit Offsets usw.) kommt. http://1337files.13.funpic.de/ce.jpg Nachdem ich in einem anderem Forum keinen fand, der davon Ahnung hatte, frage ich hier: Gibt es soetwas auch in Delphi? Ich verwende derzeit die Funktion "ReadProcessMemory", die jedoch nur Werte aus statischen Adressen auslesen...
[Request] SV for 4356 + CE injection codes
12/09/2007 - Conquer Online 2 - 19 Replies
Hey anyone reading this, im just wondering if anyone can give me the latest working 4356 SV and working CE injection codes? i tried searching and all i can find is a bunch of old links from like 4-6 months ago that people continue to post on with about 8 pages of "i cant get it to work" (no one seams to read post date) so yah, if anyone could do me a favor and let me know what is the latest SV version and where i can get the CE injection codes, please let me know :p
Delphi Codes
12/06/2007 - WarRock - 3 Replies
:confused: Hi, Ich suche codes für delphi (warrock) ich habe sie schon seit 3 std. überall gesucht aber ich finde keine!!! :confused: Kann mir bitte jemand von euch eine internettseite posten oder die codes für warrock direkt hier rein Posten?? :confused: DANKE!!!



All times are GMT +1. The time now is 21:04.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.