Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 01:09

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

Advertisement



InternetOpenUrlA hook - URL verändern.

Discussion on InternetOpenUrlA hook - URL verändern. within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
InternetOpenUrlA hook - URL verändern.

Hallo, ich hooke die InternetOpenUrlA-Funktion eines Programmes, und versuche dabei den hostname "xxxxx.net" zu "127.0.0.1" zu ändern (hostname + endung hat genau so viele Zeichen wie 127.0.0.1".

Ich versuche es so:
Code:
	

    HINTERNET __stdcall hkInternetOpenUrlA(HINTERNET hInternet, LPCTSTR lpszUrl, LPCTSTR lpszHeaders, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext)
    {
            char szBuffer[256];
     
            sprintf(szBuffer, "%s", lpszUrl);
     
            szBuffer[7] = '1';
            szBuffer[8] = '2';
            szBuffer[9] = '7';
            szBuffer[10] = '.';
            szBuffer[11] = '0';
            szBuffer[12] = '.';
            szBuffer[13] = '0';
            szBuffer[14] = '.';
            szBuffer[15] = '1';
     
            LPCTSTR newUrl = (LPCTSTR) szBuffer;
     
            return pInternetOpenUrlA(hInternet, newUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext);
    }
Allerdings crashed das Programm (.. funktioniert nicht mehr) mit meiner Version.
Wo liegt denn das Problem?
vwap is offline  
Old 06/06/2013, 22:11   #2
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Ähm.
Was genau spricht gegen:
Code:
char* szNewUrl = "127.0.0.1";
if(strlen(lpszUrl) >= strlen(szNewUrl))
{
    strncpy(&lpszUrl, szNewUrl, strlen(szNewUrl));
}
(Untested)

€: * vergessen

Padmak
Padmak is offline  
Old 06/06/2013, 22:29   #3


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Steht dein Projekt auf Unicode oder Multibyte?
MrSm!th is offline  
Thanks
1 User
Old 06/06/2013, 22:38   #4
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Multibyte, Smith.
Padmak, ich muss nur einen Teil der übergebenen URL ändern, deswegen der Zugriff per Index.
vwap is offline  
Old 06/06/2013, 22:55   #5
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Dann machs trotzdem so wie ichs gesagt hab:
Code:
char* szNewUrl = "127.0.0.1";
if(strlen(lpszUrl) >= (strlen(szNewUrl) + 7))
{
    strncpy(&lpszUrl[7], szNewUrl, strlen(szNewUrl));
}
Kannst du debuggen und schaun, wos crasht?

Padmak
Padmak is offline  
Old 06/06/2013, 22:57   #6


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
^Würde ich nicht versuchen. Der Parameter ist ein const Pointer, da hast du nichts zu verändern! Und deine Bedingung macht keinen Sinn ;O

Versuch es mal mit Debug-Ausgaben bzw. Logs. Der Code sieht so erstmal nicht falsch aus.
MrSm!th is offline  
Old 06/06/2013, 22:57   #7
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Würde ich gerne, allerdings erhalte ich bei der Zeile "strncpy(&lpszUrl[7], szNewUrl, strlen(szNewUrl));" die Fehlermeldung "Das Argument vom Typ ""const CHAR *"" ist mit dem Parameter vom Typ ""char *"" inkompatibel."
Das "&"-Zeichen ist unterstrichen.

Mit folgendem Logging erhalte ich folgende Ausgabe:
Code:
HINTERNET __stdcall hkInternetOpenUrlA(HINTERNET hInternet, LPCTSTR lpszUrl, LPCTSTR lpszHeaders, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext)
{
	char szBuffer[256];

	sprintf(szBuffer, "%s", lpszUrl);

	AddLog("Buffer initialized.");

	szBuffer[7] = '1';
	szBuffer[8] = '2';
	szBuffer[9] = '7';
	szBuffer[10] = '.';
	szBuffer[11] = '0';
	szBuffer[12] = '.';
	szBuffer[13] = '0';
	szBuffer[14] = '.';
	szBuffer[15] = '1';

	AddLog("New address set: %s", szBuffer);

	LPCTSTR newUrl = (LPCTSTR) szBuffer;

	AddLog("Converted buffer: %s", newUrl);
	
	return pInternetOpenUrlA(hInternet, newUrl, lpszHeaders, dwHeadersLength, dwFlags, dwContext);
}
Code:
[06/06/13 23:01:08]: Buffer initialized.
[06/06/13 23:01:08]: New address set: http://127.0.0.1/schit.php?i=memati67&blame=f80e646440c6021501aa90b8b7f26728&surv=fea05fbaa726e6ba3ddfd21872bdf2f1&l=021501aa99590b05fe95c7f460b8b7f2&p=wosifwse
[06/06/13 23:01:08]: Converted buffer: http://127.0.0.1/schit.php?i=memati67&blame=f80e646440c6021501aa90b8b7f26728&surv=fea05fbaa726e6ba3ddfd21872bdf2f1&l=021501aa99590b05fe95c7f460b8b7f2&p=wosifwse
Die Url scheint korrekt zu sein.
vwap is offline  
Old 06/06/2013, 23:21   #8
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Oh, tatsächlich. Die Bedingung macht schon Sinn...
Crasht das ganze auch ohne dein Zeug? Dann wäre nämlich schlicht dein Hook im Ar***^^

Padmak
Padmak is offline  
Old 06/06/2013, 23:40   #9
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Nein, der Hook passt.
Wenn ich einfach den Parameter wieder returne, funktioniert alles.
vwap is offline  
Old 06/06/2013, 23:50   #10
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Probier mal NUR PROBEHALBER dein Array auf'm Heap zu erstellen, also
Code:
char* szBuffer = new char[256];
Und dann nicht deleten, sondern lassen.. Ist zwar falsch, aber es könnte theoretisch funktionieren

Padmak
Padmak is offline  
Old 06/06/2013, 23:53   #11
 
elite*gold: 14
The Black Market: 108/0/1
Join Date: May 2011
Posts: 2,671
Received Thanks: 818
Ändert leider nichts.
vwap is offline  
Old 06/07/2013, 01:14   #12
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Was spricht gegen Debuggen?
Schlüsselbein is offline  
Old 06/07/2013, 01:26   #13


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Würde ich gerne, allerdings erhalte ich bei der Zeile "strncpy(&lpszUrl[7], szNewUrl, strlen(szNewUrl));" die Fehlermeldung "Das Argument vom Typ ""const CHAR *"" ist mit dem Parameter vom Typ ""char *"" inkompatibel."
Das "&"-Zeichen ist unterstrichen.
Wie gesagt, weil der Parameter const ist. Da hast du nichts reinzuschreiben und das teilt dir der Compiler auch mit. Deine Lösung mit dem lokalen Buffer war schon richtig.

Quote:
Die Bedingung macht schon Sinn...
Welchen?

Quote:
Originally Posted by Headpuster View Post
Ändert leider nichts.
Wieso auch? Ob Heap oder Stack ist in dem Fall völlig wurst.

Verstehe ich es richtig, dass nach deinen Logs quasi der Aufruf der originalen Funktion crasht, aber nur mit dem modifizierten Parameter?
Fehlt vielleicht am Ende das 0-Byte? Calling-Conventions richtig?
Der Logstring nach dem Casten des Buffers ist übrigens überflüssig, du verschiebst da letztendlich nur den Pointer in eine andere Variable (daran ist auch nichts "Konvertieren"), insofern kann da auch nichts passieren. Interessanter wäre, wenn du den Return-Wert von pInternetOpenUrlA speicherst, dann diesen loggst und danach erst returnst. Dann weiß man auch, ob der Crash tatsächlich dort stattfindet oder erst später.

Am besten wäre aber in der Tat einfach debuggen.
MrSm!th is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
WarLord Public Hook (Client Hook) 01.03 Rleased Official Epvp Release by pastalov.
03/03/2012 - WarRock Hacks, Bots, Cheats & Exploits - 4 Replies
hi. Endlich hat WarLord seinen Public Hack mal geupdated :handsdown: Hier habt ihr Ihn: http://img715.imageshack.us/img715/7504/frecky.pn g Der Download befindet sich im anhang! Virus Check: https://www.virustotal.com/file/3792beba0863829ec 3e2b53f3b0c17d20bfc09c7d76f5f24967a79f1a82a4ddb/an alysis/1330708386/
<26.06.11> Chico™ Public Hook, //Invisible//Chams /Stamina/Mini Hook/NO CRASH VERSION
07/08/2011 - WarRock Hacks, Bots, Cheats & Exploits - 46 Replies
26.06.11 Hack Released 26.06.11 SuperNoSpread Problem Fixxen Status= Not in Hack Hej Com, leider hab ich eine schlechte nachricht xP^^ aus egendeinen Grund verursacht bei mir SuperNoSpread einen Direkten Crash sobald man in game ist, deshalb habe ich es entfernt O,o der Hack ist tortzdem nett und wird euch gefallen, sobald ich mehr addys habe kommen mehrere funktionen noch dazu ;) http://img4.fotos-hochladen.net/uploads/public24e lfvtrw1u.png STOP! VOR DEM DOWNLOAD! Mit Dem...
Shops Verändern,FileZilla Verbinden, & Map Verändern..
02/26/2010 - Metin2 Private Server - 16 Replies
Hallo Comm. Ich brauche hilfe bei Filezilla Wächter Des Dorfplatzes zu Entbuggen. Ich brauche hilfe bei Maps Verändern. Ich brauche hilfe bei Shops Items zu verändern. Ich brauche hilfe bei Filezilla Zu Verbinden. Mfg Tod<3



All times are GMT +1. The time now is 01:09.


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.