Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 03:56

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

Advertisement



[Video Tutorial] Microsoft Detours 1.5 New Video

Discussion on [Video Tutorial] Microsoft Detours 1.5 New Video within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Smile [Video Tutorial] Microsoft Detours 1.5 New Video

Da schlurmann sein Video ja gelöscht hat und einige User wollten, dass ich ein neues mache, habe ich mich kurzer Hand entschieden, ein eigenes Tutorial zu MS Detours 1.5 hochzuladen.

Es ist mein erstes (Video-)Tutorial, also bitte ich um Kritik und Verbesserungsvorschläge, aber bitte bleibt dabei sachlich!


Wenn ihr fragen habt, weil etwas zu schnell ging oder ich etwas zu undeutlich erklärt habe, fragt ruhig


(detours.h und detours.lib sind im Anhang)


(Am besten in HD sehen)
Attached Files
File Type: rar Detours.rar (52.8 KB, 910 views)
MrSm!th is offline  
Thanks
56 Users
Old 02/01/2011, 12:32   #2
 
elite*gold: 0
Join Date: Apr 2009
Posts: 177
Received Thanks: 42
Nettes und Hilfreiches Tutorial aber hab da noch eine Frage, undzwar warum das selbe bei den Detours 2.1 nicht funktioniert, sieht bei mir so aus, evt haste eine Lösung auch wenn es hier um 1.5 geht.

Quote:
#include <windows.h>
#include <detours.h>
#pragma comment (lib,"detours.lib")

typedef int (WINAPI *Messagebox_typ)(HWND,LPCSTR,LPCSTR,UINT);

Messagebox_typ Messagebox_orig = NULL;

int WINAPI MyMessageBox(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
{
lpText = "Detour funktioniert";
lpCaption = "Detour";
return Messagebox_orig(hWnd,lpText,lpCaption,uType);
}


int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
if (reason == DLL_PROCESS_ATTACH) {
DetourTransactionBegin();
Messagebox_orig = (Messagebox_typ)DetourAttach(&(PVOID&)MessageBoxA, (PVOID)MyMessageBox);
DetourTransactionCommit();
}
return 1;
}
mfg
BrendonHomo is offline  
Old 02/01/2011, 13:23   #3


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Eigentlich sollte das so gehen. Ist MessageBoxA denn die richtige MessageBox?
MrSm!th is offline  
Thanks
3 Users
Old 02/01/2011, 13:55   #4
 
elite*gold: 0
Join Date: Apr 2009
Posts: 177
Received Thanks: 42
Ja, ist die richtige.
Beim Injecten bekomme ich folgende Meldung:

Quote:
An exception (C0000005) occurred during DllEntryPoint or DllMain in module
C:\bla\meinedll.dll
Edit: Das Problem liegt hier dran

Quote:
Messagebox_orig = (Messagebox_typ)DetourAttach(&(PVOID&)MessageBoxA, (PVOID)MyMessageBox);
BrendonHomo is offline  
Old 02/01/2011, 14:31   #5


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Achso klar, die DetourAttach möchte einen Doppelzeiger, also einen Zeiger auf einen Zeiger (void**).
Also musst du die Adresse von MessageBoxA in eine Variable speichern und dessen Adresse übergeben.
Mit nem Blick in die MSDN hättest du das auch lösen können, ich sagte doch, dass ich keinen großartigen Support für 2.1 geben kann.
MrSm!th is offline  
Thanks
4 Users
Old 02/01/2011, 14:48   #6
 
elite*gold: 0
Join Date: Apr 2009
Posts: 177
Received Thanks: 42
Danke, klappt nun wunderbar.
BrendonHomo is offline  
Old 02/02/2011, 17:49   #7
 
germanhacker's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 84
Received Thanks: 13
Tolles Tutorial MrSm!th.
Hat bei mir super geklappt. Da hab ich mal wieder dazu gelernt.
"Was ist ein Detour ?" hast du meiner Meinung nach gut erklärt. Jetzt weiß ich, wie so ein Detour funktioniert. Danke ! =)
Und der kann von einem Hackshield wirklich nicht erkannt werden ?
Das ist ja geil =D
germanhacker is offline  
Old 02/02/2011, 18:49   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Doch klar.
Indem Hackshield eben die ersten Bytes einer Funktion auf den Sprungbefehl überprüft.
Da gibts ein paar Tricks um sowas zu umgehen, aber manchmal hilft auch nur noch ein Bypass, um hooken zu können, wie man lustig ist.
MrSm!th is offline  
Thanks
2 Users
Old 02/02/2011, 18:51   #9
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Natürlich kann ein hook von einem anticheat pogramm erkannt werden.
Wobei es aber methoden gibt mit dennen man versucht das zu verhindern.
Akorn is offline  
Old 02/02/2011, 19:02   #10
 
germanhacker's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 84
Received Thanks: 13
Was wären denn so Tricks ?
Kann XTrap schon einen Hook erkennen ? Wahrscheinlich schon :/
germanhacker is offline  
Old 02/02/2011, 19:17   #11
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Indem man z.b. den hook nicht an den anfahng einer funktion setzt sondern erst später. Wobei man dann natürlich aufpassen muss das man die Parameter und lokalen Variablen richtig addressiert da sich die werte in denn Stack und Basepointer registern ändern können.
Akorn is offline  
Old 02/02/2011, 19:24   #12
 
germanhacker's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 84
Received Thanks: 13
Müsst ich nur noch wissen, wo jetzt in meinem Code angegeben wird, wo der hook eingesetzt werden soll. Dort könnte man das dann so abändern, dass der Hook erst iwann später gesetzt wird. Oder hat das auch was damit zu tun, wann man die DLL injiziert ?
germanhacker is offline  
Old 02/02/2011, 19:36   #13


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Klar.
Tricks wären, nicht am Anfang der Funktion zu hooken, sondern später.
Oder ne andere Hooking Methode, eben nicht per Detour, sondern zb. Hardwarebreakpoints, Import/ExportAddressTable hooks, VTable hooks, wenn es um Methoden von Klassen geht oder auch einfach andere Jumps.
Gibt ja nicht nur den einfachen Unconditional Jump, sondern noch weitere.

edit:

Lol, wie zwei Posts von zwei unterschiedlichen Leuten so nen ähnlichen Wortlaut haben können

Quote:
Müsst ich nur noch wissen, wo jetzt in meinem Code angegeben wird, wo der hook eingesetzt werden soll. Dort könnte man das dann so abändern, dass der Hook erst iwann später gesetzt wird. Oder hat das auch was damit zu tun, wann man die DLL injiziert ?
Die Adresse, an der gehookt werden soll, würdest du einfach ändern.

Zb. MessageBoxA+5

Bei WinApi Funktionen macht das nicht so ganz große Probleme mit den Parametern, aber bei anderen wirds da manchmal schon problematisch. Außerdem solltest du bei sowas lokale Variablen vermeiden.
MrSm!th is offline  
Thanks
2 Users
Old 02/02/2011, 19:40   #14
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Quote:
Müsst ich nur noch wissen, wo jetzt in meinem Code angegeben wird, wo der hook eingesetzt werden soll. Dort könnte man das dann so abändern, dass der Hook erst iwann später gesetzt wird.
Die Addresse an die der Hook gesetzt wird, wird als erster parameter der funktion "DetourFunction" übergeben. Mit dem zeitpunkt der Dll injektion hat das aber nichts zu tun.
Akorn is offline  
Thanks
1 User
Old 02/02/2011, 19:59   #15
 
germanhacker's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 84
Received Thanks: 13
Ok, danke ihr beiden für die Tipps. =)
germanhacker is offline  
Reply


Similar Threads Similar Threads
[Tutorial] Microsoft Detours
07/24/2013 - Coding Tutorials - 74 Replies
Eine kleine .dll wird geschrieben, die mithilfe der Microsoft Detours Library die MessageBoxA Funktion detourt, und den Text ersetzt, sobald sie in einen Prozess injeziert wird. Ich hoffe ich konnte es einigermaßen verständlich erklären (mein Gedankenfluss ist manchmal etwas wirr). Es ist auf Deutsch. Detours Video Tutorial
[Video Tutorial] - Very Easy Tutorial How to make your Own Wallhack in C++
09/01/2012 - Soldier Front Hacks, Bots, Cheats & Exploits - 16 Replies
Hello Everyone!Hellow Philippines - Mabuhay Pinoy Cheaters! Confidentials000 of GZP and Me Babyface21 ay iisa lang! Today i Will Teach you on How to Make Your Own Wallhack in C++ Very Simple By Video Tutorials Step by Step Part 1 - 3 Dont Ask me to Release my Private Wallhack coz i Need it to still Undetected
[cSRO] IPMana 1.0 - Tutorial & Video Tutorial
02/12/2011 - SRO Hacks, Bots, Cheats & Exploits - 6 Replies
Hi all, I'm just posting here for those that have problems setting up the IPMana. First normal tutorial, the Video Tutorial will be at the bottom of the thread. Whats IPMana ? IPMana is similar to QQdaili its just like a proxy program to reduce the lag in cSRO. How can i use IPMana ?



All times are GMT +1. The time now is 03:57.


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.