|
You last visited: Today at 19:57
Advertisement
[C++] Windows Detours -> brauche anstupser.
Discussion on [C++] Windows Detours -> brauche anstupser. within the C/C++ forum part of the Coders Den category.
06/20/2014, 00:27
|
#1
|
elite*gold: 0
Join Date: Jun 2014
Posts: 24
Received Thanks: 0
|
[C++] Windows Detours -> brauche anstupser.
Hey wollte bisschen Windows Detours testen, anfang an hat alles gut funktioniert, z.B eine MessageBox zu hooken  .
Allerdings interessiert mich sowas eher weniger ich wollte direkt mal gucken wie man eine Funktion hookt wo man das Offset noch rausfinden muss, also wandte ich mich an diesem Tutorial:
Naja leider happerts ein wenig, ich weiss leider nicht wo:
DLL:
Code:
// dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
#include "stdafx.h"
#include <detours.h>
#include <iostream>
#define ADRESS 0x0413D00
#pragma comment(lib,"detours")
using namespace std;
long double(__cdecl* originalFunction) (long double);
long double HookedFunc(long double arg)
{
cout << "Original function: arg: " << arg << endl;
arg = 3.85;
return originalFunction(arg);
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
cout << "attaching to hook" << endl;
originalFunction = (long double(__cdecl*)(long double))DetourFunction((PBYTE)ADRESS, (PBYTE)HookedFunc);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
IDA PRO:
Test Programm:
Code:
// TestApplication.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include "stdafx.h"
#include <string>
#include <iostream>
#include <Windows.h>
using namespace std;
double HookMe(double arg);
double HookMe(double arg)
{
cout << "ARG: " << arg << endl;
return arg;
}
int _tmain(int argc, _TCHAR* argv[])
{
while (true)
{
Sleep(2000);
HookMe(2.50);
}
return 0;
}
Ich weiss nicht warum IDA long double anzeigt, ich habs auch mit double probiert, aber selbes ergebniss, hoffe einer weiss was da falsch ist. (mein tipp ist das offset aber ich weiss nicht genau)
Winject:
|
|
|
06/20/2014, 01:27
|
#2
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Führst du Winject denn als Admin aus?
|
|
|
06/20/2014, 12:51
|
#3
|
elite*gold: 0
Join Date: Jun 2014
Posts: 24
Received Thanks: 0
|
Quote:
Originally Posted by snow911
Führst du Winject denn als Admin aus?
|
Jo das hab ich auch probiert.
|
|
|
06/20/2014, 13:20
|
#4
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Kommentier mal std::cout in DllMain aus.
|
|
|
06/20/2014, 13:24
|
#5
|
elite*gold: 0
Join Date: Jun 2014
Posts: 24
Received Thanks: 0
|
Ne ging leider auch nicht.
|
|
|
06/20/2014, 13:25
|
#6
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
DEP deaktiviert? Anscheinend wird die DLL ja nicht mal injected. Ansonsten evtl. mal einen anderen Injector verwenden.
|
|
|
06/20/2014, 13:28
|
#7
|
elite*gold: 0
Join Date: Jun 2014
Posts: 24
Received Thanks: 0
|
Quote:
Originally Posted by Peter File
DEP deaktiviert? Anscheinend wird die DLL ja nicht mal injected. Ansonsten evtl. mal einen anderen Injector verwenden.
|
Was ist DEP?.
Und ich hab ja das cout hinzugefügt damit ich sehe, ob sie überhaupt injected wird, was auch der Fall ist anscheinend scheitert es bei der Funktion.
|
|
|
06/20/2014, 14:27
|
#8
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
|
|
|
06/20/2014, 14:39
|
#9
|
elite*gold: 0
Join Date: Jun 2014
Posts: 24
Received Thanks: 0
|
Leider hat das auch nicht geholfen, selbes ergebniss wie vorher.
|
|
|
07/08/2014, 10:57
|
#10
|
elite*gold: 0
Join Date: May 2009
Posts: 438
Received Thanks: 338
|
Code:
#define ADDRESS 0x0413D00
typedef double(__cdecl *tHookedFunction)(double arg1);
tHookedFunction originalFunction;
void Hook(void)
{
originalFunction = (tHookedFunction)CreateDetour((byte*) ADDRESS, (byte*) HookedFunction);
}
double __cdecl HookedFunction(double arg1)
{
cout << arg1 << endl;
arg1 = 13.37;
return originalFunction(arg1);
}
Untested.
Quote:
|
Ich weiss nicht warum IDA long double anzeigt, ich habs auch mit double probiert.
|
Weil IDA nicht alles weiß. Die Calling Convention (stdcall, cdecl, thiscall, etc.) wird auch öfters mal falsch angezeigt, einfach reanalyzen oder brain nutzen. Du hast den Source der Quellapplikation vor dir, warum testest du überhaupt "long double", wenn du dir 100% sicher bist, dass es "double" ist?
sizeof(double) = 8
sizeof(long double) = 12
Quote:
|
(mein tipp ist das offset aber ich weiss nicht genau)
|
Nein, das passt.
|
|
|
07/08/2014, 21:31
|
#11
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
testapplikation als release kompilieren, die calling convention in der testapplikation fest festlegen auf entweder cdecl oder stdcall, gleiche dann in der dll sowohl bei dem typedef als auch der hookfunktion.
|
|
|
07/08/2014, 21:51
|
#12
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,913
Received Thanks: 25,413
|
Wenn die DEP für einen Injector ausgeschaltet werden muss, ist der Injector Müll.
|
|
|
07/09/2014, 14:34
|
#13
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Quote:
Originally Posted by MrSm!th
Wenn die DEP für einen Injector ausgeschaltet werden muss, ist der Injector Müll.
|
Keine Ahnung wie Winject da verfährt, aber bei vielen anderen Injektoren soll es Probleme geben wenn die DEP an ist.
|
|
|
 |
Similar Threads
|
[Video Tutorials]MS Detours und Nicht-Windows-Api Funktionen
11/24/2012 - Coding Tutorials - 32 Replies
Tjoa, wie versprochen folgt hier auch ein Tutorial für das Hooken von Funktionen, die kein Teil der Windows Api sind.
Es sind insgesamt 53 Minuten Filmmaterial, das liegt zum einen daran, dass ich recht ausführlich auf das theoretische Analysieren von Funktionen eingehe und zum anderen an ungefähr 30 Minuten Reverse Engineering an einem Testspiel.
Das ganze ist nun doch viel mehr ein Reverse Engineering Tutorial als ein Detours Tutorial geworden. Das hat einfach damit zutun, dass Detours ja...
|
brauche Windows 7 Ultimate iso
04/08/2012 - Technical Support - 2 Replies
Nachdem ich Probleme mit meinen PC habe (http://www.elitepvpers.com/forum/technical-suppor t/1813550-smart_hdd-und-schwarzer-bildschirm.html) , will ich mein PC formatieren. Nun finde ich Windows 7 Ultimate CD nicht mehr und wollte daher fragen ob ich die Demo-Version herunterladen kann und anschließend Key eingeben kann ?
im Internet habe ich nichts legales gefunden ...
|
Brauche Hilfe Windows 7
07/20/2011 - Technical Support - 9 Replies
Hallo.
Ich habe mir ein neuen Computer zusammengebastelt Windows 7 neu installiert und nun hängt sich mein Windows immer nach einiger zeit auf. Ich kann nichts mehr machen und warten bringt auch nichts das heißt kein Task-Manager oder so.
Mein System: Windows 7 Ultimate 32Bit
Grafikkarte: Nvidia 285GTX
Prozessor: AMD Phenom II X4 955, 4x 3.2GHZ
Arbeitssoeicher: 1x Corsair XMS3 4GB DDR3 Singlelayer
...
|
[Guide] Using Windows Detours to Redirect Silkroad to a Proxy
11/25/2010 - SRO Coding Corner - 28 Replies
This is the second guide in a three part series. The first part is the "A Simple Silkroad Proxy Reference" guide, which sets up a simple proxy. This guide shows how to create your own hook and detour to use that proxy (or any other for that matter) with the client. The third and final guide will show how to use a clientless with the proxy and illustrate the power of the design.
There is not that much code across the three projects in this guide, but some of the concepts are advanced. It took...
|
BRAUCHE HILFE !!!!!! ( WINDOWS 7 )
02/17/2010 - Metin2 Private Server - 7 Replies
Hallo EPvP,
Dieser Thread Hat zwar nix mit Mt2 Zutun aber ich brauche hilfe,
Ich hab mir Windows 7 Ultimate drauf getan , alles schön und gut
nur hab ein problem ich kann nicht ohne DSL Kabel zocken
bzw ich hab kein i-net nur mit kabel und dafür benötige ich ein treiber für WINDOWS 7 für MSI M670
Hab überall gesucht find nix hilft mir plss hab paar programme gefunden aber die kosten was
Biittte HILFT !!!!!!!!!!!
|
All times are GMT +1. The time now is 19:58.
|
|