Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 14:24

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

 

[C++] Dll unbekannter Fehler

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 705
Received Thanks: 312
[C++] Dll unbekannter Fehler

Hey Com,

ich habe mal versucht eine dll für das Spiel Pinball das standardgemäß auf Windows enthalten ist zu coden. Es enthält nur einen Pointer unzwar den um die Punktezahl zu ändern, es klappt aber nicht richtig, anstatt die Punktezahl zu ändern beendet er einfach den Prozess. Vielleicht könntet ihr mir helfen.

PHP Code:
#include <windows.h>

DWORD Addr_Base PINBALL.EXE+0x0025040;
DWORD Offset[1] = {0x52};

void HackThread(){
    
MessageBoxA(NULL"Inject""Injection successful, F5 - Change Score"MB_OK);
    while(
true){
        if(
GetAsyncKeyState(VK_F5)){
            
DWORD Address = *(DWORD*)(Addr_Base);
            
Address = *(DWORD*)(Address Offset[0]);
            
DWORD Value = *(DWORD*)(Address Offset[1]);

            if(
Value == 1){
                *(
DWORD*)(Address Offset[1]) = 99999;
            }else{
                *(
DWORD*)(Address Offset[1]) = 0;
            }
            
Sleep(250);
        }

        
Sleep(50);
    }
}

BOOL WINAPI DllMain(HINSTANCE HMODULEDWORD dwReasonLPVOID lpvReserved){
    if(
dwReason == DLL_PROCESS_ATTACH)
        
CreateThread(00, (LPTHREAD_START_ROUTINE)HackThread000);
    return 
true;




v0lle is offline  
Thanks
1 User
Old   #2
 
elite*gold: 0
Join Date: Dec 2007
Posts: 321
Received Thanks: 98
Code:
DWORD Addr_Base = [COLOR="Red"]PINBALL.EXE+[/COLOR]0x0025040;
Und das kannst du so kompilieren? Sollte eigentlich nicht klappen.

//EDIT:

Code:
[COLOR="Red"]void[/COLOR] HackThread(){
Das ist leider auch kein guter Code. "DWORD WINAPI" wäre besser.

//EDIT²:

Außerdem solltest du dir nochmal den Return-Type von GetAsyncKeyState() ansehen. So wie du es verwendest kann das auch zu Problemen führen:

Quote:
Originally Posted by MSDN
Return Value

Type: SHORT

If the function succeeds, the return value specifies whether the key was pressed since the last call to GetAsyncKeyState, and whether the key is currently up or down. If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState. However, you should not rely on this last behavior; for more information, see the Remarks.

The return value is zero for the following cases:

* The current desktop is not the active desktop
* The foreground thread belongs to another process and the desktop does not allow the hook or the journal record.


mydoom is offline  
Thanks
1 User
Old   #3
 
elite*gold: 0
Join Date: Dec 2009
Posts: 705
Received Thanks: 312
Danke erst mal. ^^
Ich meld mich noch mal, wenn weitere Probleme auftreten sollten.
v0lle is offline  
Thanks
1 User
Old   #4
failing on a final level
 
elite*gold: 46130
Join Date: Jun 2009
Posts: 28,488
Received Thanks: 24,536
Code:
+offset[1]
Ist der grund.
Dein array hat nur ein element, du greifst aber auf zwei zu


MrSm!th is offline  
Old   #5
 
elite*gold: 0
Join Date: Dec 2009
Posts: 705
Received Thanks: 312
Funktioniert noch nicht , ich hab jetzt die Zeile auf Offset[2] geändert, wenn ich die dll Datei injecte stürzt der Prozess ab.
v0lle is offline  
Thanks
1 User
Old   #6
 
elite*gold: 0
Join Date: Dec 2007
Posts: 321
Received Thanks: 98
Der Index eines Arrays beginnt (in C/C++) bei Null. Das erste Element muss demnach mit dem Index Null angesprochen werden. In deinem Fall wäre das Offset[0].
mydoom is offline  
Old   #7
 
elite*gold: 0
Join Date: Dec 2009
Posts: 705
Received Thanks: 312
Die Zuordnung eines Arrays der Größe 0 ist doch aber nicht möglich.
v0lle is offline  
Thanks
1 User
Old   #8
failing on a final level
 
elite*gold: 46130
Join Date: Jun 2009
Posts: 28,488
Received Thanks: 24,536
Du solltest vielleicht erstmal die Sprache lernen, bevor du Dlls schreibst!

Code:
DWORD Offset[1] = {0x52};
Dein Array hat nur ein Element!
Code:
      DWORD Value = *(DWORD*)(Address + Offset[1]);
Du willst mit [1] aber auf das zweite zugreifen!
Lösch diese Zeile und alle anderen, die auf [1] zugreifen, einfach aus dem Code oder füg ein zweites Offset hinzu.


MrSm!th is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Hamachi Unbekannter Fehler
Ich bereite grade meinen Hamachi vor und installiere alles drauf, und jetzt seh ich sowas zum ersten mal. ...
14 Replies - Metin2 PServer - Discussions / Questions
Worldserver unbekannter fehler?
Hallo com. ich habe seid 2 tagen öfters einen fehler das der World server nicht starten will und ich weiß nicht wieso habe nix an den files...
11 Replies - Flyff PServer - Discussions / Questions
Unbekannter Core fehler
Hi leute ich habe einen unbekannten core fehler nach dem ich versucht habe die neuen maps zu entbuggen.ich habe die in dem thema angebotenen files...
15 Replies - Metin2 PServer - Discussions / Questions
Novos Easy Handler 0.3.7.5 Server - Unbekannter Fehler!
Hallo,liebe Community. Ich weiß zwar nich genau ob dieser Thread hier rein gehört aber ich mach einfach ma weiter^^. Ich habe vor nich...
2 Replies - WoW PServer Hosting
Unbekannter Fehler.
Habe soeben einen Fehler bekommen den ich vorher noch nie hatte :/ Vllt. könnt ihr damit ja was anfangen :S Es geht mir eig. nur um das...
6 Replies - Metin2 PServer - Discussions / Questions



All times are GMT +2. The time now is 14:24.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.