Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 21:58

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

Advertisement



[C++]NotePadDetour

Discussion on [C++]NotePadDetour within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
[C++]NotePadDetour

Hi ihr lieben Coders,
ich bin grad dabei ein wenig C++ zu lernen, bzw mich weiter zu bilden.

Dann sha ich auf gamedeception ein nettes tutorial zum Thema Detouring.

Als beispiel wurde notepad.exe genommen.

So dann hab ich das mal gemacht, nur ich bekomm halt einen error

HTML Code:
LINK : fatal error LNK1104: Datei "detours.lib" kann nicht geöffnet werden.
Dann googelte ich nach detours.lib, hab aber nichts gescheites gefunden. Könntet ihr mir helfen?

Hier meine main.cpp



und hier die Detours.h





LG

Edit:

Zur info (auszug aus IDA)

start address 0x0100978A

int __stdcall InsertDateTime(int x)
.BritainAndy is offline  
Old 12/31/2010, 15:37   #2
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Du musst die detours.lib in einem Verzeichnis liegen haben dass in deinem Projekt als Librarydirectory angegeben ist, sonst findet der Linker sie natürlich nicht.
Aber nach deinem Text zuschließen hast du überhaupt keine detours.lib, also wird das auch nichts werden...
Nebenbei bemerkt würde es dir nicht schaden auch mal die Stickys zu lesen, denn dann hättest du schon längst diese Seite hier gefunden
Bot_interesierter is offline  
Old 12/31/2010, 15:42   #3
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Quote:
15:38 <Disconnect> andy, ich glaube du musst detours.h zuerst als statische library (.lib datei) compilen und dann dein programm mit der lib verlinken
So, jetzt muss ich also googlen wie ich header dateien kompiliere
.BritainAndy is offline  
Old 12/31/2010, 15:53   #4
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Quote:
Originally Posted by .BritainAndy View Post
So, jetzt muss ich also googlen wie ich header dateien kompiliere
Hast du dir eigentlich mal den Quelltext in der detours.h durchgelesen?
Von den entscheidenten Funktionen sind dort nur Prototypen, der Header alleine wird dir nichts nützen.
Da ich die Lizenzbedingungen von Detours 1.5 gerade nicht im Kopf habe werde ich dir die Datein nicht hochladen, mit Google müsstest du ohne schwierigkeiten den kompletten Quellcode von Detours 1.5 finden können.

Ich rate dir aber dringend dich ersteinmal über die Sprache die du benützt zu informieren und über deine IDE.
Bot_interesierter is offline  
Old 12/31/2010, 17:22   #5
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Okay, vielen dank.
Hab jetzt alles.

Nur wenn ich jetzt als Release debuggen möchte und somit die DLL erstellen möchte, bekomm ich immer den Error das "Das Programm "PFAD\DeoutEditor.dll" kann nicht gestartet werden,
.BritainAndy is offline  
Old 12/31/2010, 18:06   #6
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Quote:
Originally Posted by .BritainAndy View Post
Okay, vielen dank.
Hab jetzt alles.

Nur wenn ich jetzt als Release debuggen möchte und somit die DLL erstellen möchte, bekomm ich immer den Error das "Das Programm "PFAD\DeoutEditor.dll" kann nicht gestartet werden,
Versuchs mal mit erstellen statt debuggen ^^
Und lies bitte endlich das Handbuch zu VisualStudio.
Natürlich kann VisualStudio keine dlls ausführen, dlls sind keine Executables, sie müssen von einer Executable geladen werden, erst dadurch wird die DllMain aufgerufen.
Bot_interesierter is offline  
Thanks
1 User
Old 01/01/2011, 15:15   #7
 
.BritainAndy's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,385
Received Thanks: 1,006
Vielen Dank!

Nur wenn ich injecte, passiert nichts wenn ich bei Notepad Bearbeiten --> Uhrzeit/Datum

Drücke.

Eigtl sollte dann ja die MSGBOX kommen wenn ich die DLL injectet habe und auf Bearbeiten --> Uhrzeit/Datum drücke.

Ist da was am Code falsch?

edit:

Ich habs nun.

Und es funkt.(erstmal nen einfahc detour gemacht - danke an ende mein compiler is cool )

PHP Code:
// dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
#include "stdafx.h"
#include <detours.h>

//Original
typedef int(__stdcall *oMessageBoxA)(HWNDLPCTSTRLPCTSTRUINT);
oMessageBoxA pMessageBoxA NULL ;

//Unsere function
int __stdcall hkMessageBoxA(HWND hWndLPCTSTR szTextLPCTSTR szTitleUINT nType
{
    
MessageBox(NULLL"It works!"L"Yeah, it works"MB_OK);

    return 
pMessageBoxA(hWndszTextszTitlenType) ;
}

BOOL APIENTRY DllMainHMODULE hModule,
                       
DWORD  ul_reason_for_call,
                       
LPVOID lpReserved
                     
)
{
    switch (
ul_reason_for_call)
    {
    case 
DLL_PROCESS_ATTACH:
        
MessageBox(NULLL"It works!"L"Yeah, it works"MB_OK);
        
pMessageBoxA = (oMessageBoxA)DetourFunction((PBYTE)&MessageBoxA, (PBYTE)hkMessageBoxA) ;
        break;
    case 
DLL_PROCESS_DETACH:
        
DetourRemove((PBYTE)&MessageBoxA, (PBYTE)hkMessageBoxA) ;
        break ;
    }


    return 
TRUE;

.BritainAndy is offline  
Reply




All times are GMT +1. The time now is 22:00.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.