Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 11:51

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

Advertisement



Was ist Falsch am C++ Code ??

Discussion on Was ist Falsch am C++ Code ?? within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Was ist Falsch am C++ Code ??

Also ich habe eine .DLL geschrieben mit ein bisschen Hilfe so.
Nun weiß ich aber leider nimmer weiter und auch der Kollege konnte ned Helfen finde einfach den Fehler ned.

PHP Code:
#include "stdafx.h"
#include "NosTale Send.h"
using namespace std;

DWORD Send 0x001111;

void JoinMini(LPSTR packet)
{
    
__asm
    
{
          
MOV EDX,packet
          MOV EAX
,DWORD PTR DS:[0x011111]
          
MOV EAX,DWORD PTR DS:[EAX]
          
CALL Send
    
}
}
 
     
 
BOOL WINAPI DllMain(HINSTANCE hinstDll,DWORD Reason,LPVOID Reserved){


    switch(
Reason){

    case 
DLL_PROCESS_ATTACH:
        
JoinMini("HIER STEHT DAS PACKET");
        break;
      
    case 
DLL_PROCESS_DETACH:
        break;

    }


return 
TRUE;

Die Adressen sind gechanged aber sonst ist alles so.

Bekomme immer diesen Error:



Und ja ist für NosTale wie man sehen kann
Atzenkeeper is offline  
Old 09/24/2011, 19:46   #2
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196


Davon abgesehen:
Send hat keine Parameter und ist __stdcall?
SmackJew is offline  
Old 09/24/2011, 19:50   #3
 
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
Sieht für mich so aus, als ob der OP eine C++/CLI- anstatt einer Win32-Anwendung compilet hat.
ms​ is offline  
Thanks
1 User
Old 09/24/2011, 20:10   #4
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Jo danke das war schonmal das Problem lag wohl darann das ich unter Win32 keinen direkten Hinweis auf eine .DLL Datei gefunden hab. :P

Ich hab aber immernoch das Problem das ich nicht genau weiß in welcher Art von String ich das Packet übergeben muss.

So sieht der ASM Code in Olly aus:

Code:
MOV EDX,DWORD PTR SS:[EBP-C]
MOV EAX,DWORD PTR DS:[6309EC]
MOV EAX,DWORD PTR DS:[EAX]
CALL nostalex.005C4648

Das hier noch als Zusatzinfo:

Code:
Stack SS:[0012FCA0]=08EB43F8, (ASCII "Char_NEW kghkj 0 1 0 9")
EDX=0012FCFC

Im ersten Post die Werte waren noch Modifiziert also hatte schon die richtigen drinn
Atzenkeeper is offline  
Old 09/24/2011, 20:40   #5
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Atzenkeeper View Post
Jo danke das war schonmal das Problem lag wohl darann das ich unter Win32 keinen direkten Hinweis auf eine .DLL Datei gefunden hab. :P

Ich hab aber immernoch das Problem das ich nicht genau weiß in welcher Art von String ich das Packet übergeben muss.

So sieht der ASM Code in Olly aus:

Code:
MOV EDX,DWORD PTR SS:[EBP-C]
MOV EAX,DWORD PTR DS:[6309EC]
MOV EAX,DWORD PTR DS:[EAX]
CALL nostalex.005C4648

Das hier noch als Zusatzinfo:

Code:
Stack SS:[0012FCA0]=08EB43F8, (ASCII "Char_NEW kghkj 0 1 0 9")
EDX=0012FCFC

Im ersten Post die Werte waren noch Modifiziert also hatte schon die richtigen drinn
Die CPU kennt keine "Arten von Strings". String ist String, eine nullterminierte Zeichenkette. 0x005C4648 scheint ja __fastcall zu sein, oder was soll der Spaß mit EDX?
SmackJew is offline  
Old 09/24/2011, 20:43   #6
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Ich muss ja irgendwie den Packet String übergeben.
Und Kollege meinte der hätte das auch so geregelt ...

Wie gesgat bin eigendlich ein VB.net Coder
Atzenkeeper is offline  
Old 09/24/2011, 20:46   #7
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Atzenkeeper View Post
Ich muss ja irgendwie den Packet String übergeben.
Und Kollege meinte der hätte das auch so geregelt ...
Deswegen frag ich dich ja, ob sie __fastcall ist.


Quote:
Originally Posted by Atzenkeeper View Post
Wie gesgat bin eigendlich ein VB.net Coder
Bleib dabei.
SmackJew is offline  
Old 09/24/2011, 21:24   #8
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Naja aber um das mit ASM zu realisieren muss ich halt kurz mal auf c++ ausweichen :P
Atzenkeeper is offline  
Old 09/24/2011, 21:56   #9
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Atzenkeeper View Post
Naja aber um das mit ASM zu realisieren muss ich halt kurz mal auf c++ ausweichen :P
1. Unwahr. Kannst die Funktion auch Byte für Byte schreiben und Hooks setzten, bzw. von außen callen.

2. Du kannst nicht auf etwas ausweichen, das du nicht beherrschst.
SmackJew is offline  
Thanks
2 Users
Old 09/24/2011, 22:50   #10
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Quote:
Originally Posted by SmackJew View Post
1. Unwahr. Kannst die Funktion auch Byte für Byte schreiben und Hooks setzten, bzw. von außen callen.

2. Du kannst nicht auf etwas ausweichen, das du nicht beherrschst.
Hmm bist der erste der sagt das das auch i-wie in VB.net zu Realisieren ist ô.o
Aber ich hab da auch keine Ahnung wie ich das dort Realisiere.

Ich hatte jetzt auch überlegt die Funktionen dann mit ner Externen VB.Net App zu Steuern. Hatte da auch was gefunden.

Also mein ganzer Source in C++ ist noch überarbeitungswürdig aber ich hab auch niemandem mal der mir da mal bisschen was beibringen würde hab in Skype vll 3 Leute an die ich mich mal wenden kann.

C++ Source:
PHP Code:
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"


DWORD Send 0x00615753;

extern "C" double SendPacket(LPSTR packet)
{
   {
    
__asm
    
{
          
MOV EDX,packet
          MOV EAX
,DWORD PTR DS:[0x6309EC]
          
MOV EAX,DWORD PTR DS:[EAX]
          
CALL Send
    
}
}
}



 


BOOL APIENTRY DllMainHMODULE hModule,
                       
DWORD  ul_reason_for_call,
                       
LPVOID lpReserved
                     
)
{
    switch (
ul_reason_for_call)
    {
    case 
DLL_PROCESS_ATTACH:
    case 
DLL_THREAD_ATTACH:
    case 
DLL_THREAD_DETACH:
    case 
DLL_PROCESS_DETACH:
        break;
    }
    return 
TRUE;

VB.Net Source:
PHP Code:
Public Class Form1



    
Public Declare Function _SendPacket Lib "NosTale Send DLL.dll" Alias "SendPacket" (ByVal packet As String) As String




    
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles CheckBox1.CheckedChanged
        
If CheckBox1.Checked True Then
            Me
.TopMost True
        
Else
            
Me.TopMost False
        End 
If


    
End Sub

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        _SendPacket
(TextBox1.Text)
    
End Sub
End 
Class 
Olly Screen:
Atzenkeeper is offline  
Old 09/25/2011, 05:54   #11
 
link's Avatar
 
elite*gold: 1
Join Date: Jul 2005
Posts: 553
Received Thanks: 454
Du könntest halt den Asm-Code z.B. mit OllyDbg assemblieren, in ein Array schreiben und dann via API-Funktionen wie WriteProcessMemory und CreateRemoteThread in den Prozess injizieren und ausführen. Sowas funktioniert auch mit VB.Net, ist halt nur mühseliger, den Asm-Code zu warten.

Die Dll muss in den Target-Prozess injiziert werden, um die Funktionen des Targets aufzurufen. Wenn du in deiner VB.Net Anwendung die Dll importierst und aufrufst, befindet sie sich im Speicher der VB.Net Anwendung. Wie soll dort die Funktion des Targets gecallt werden?

Und sollte DWORD Send = 0x00615753; nicht eher gleich DWORD Send = 0x005C4648; sein? Anscheinend callst du den Funktions-Call.

Hier das sieht auch nicht ganz richtig aus, auch wenn es eher unerheblich ist:
extern "C" double SendPacket(LPSTR packet)
"SendPacket" (ByVal packet As String) As String
link is offline  
Old 09/27/2011, 10:35   #12
 
Atzenkeeper's Avatar
 
elite*gold: 6
Join Date: May 2008
Posts: 844
Received Thanks: 841
Jo das mit dem VB.Net ist mir mitlerweile relativ egal.
Habs geschafft der DLL ne Api zu verpassen nur mit dem ASM Code stimmt immernoch etwas nicht o.o

Und ja hatte da den Call gecallt ist aber mitlerweile auch schon behoben.
Bei mir spackt nurnoch der ASM Code rum aber ist für mich auch schon nachvollziehbar das mir hier keiner dabei helfen kann da ihr ja nicht selber Steppen könnt unso und wie würde das aussehen wenn ich von jedem Step ein Screen machen würde ? Albern genau.

Ichguck einfach weiter wie Finde ich die Richtige Funktion tuts auch wenn das hier nicht ganz so einfach wie in MT2 ist :P
Atzenkeeper is offline  
Reply


Similar Threads Similar Threads
Hilfe OX Beenden. Code Falsch
03/31/2011 - Metin2 Private Server - 2 Replies
Hi leute. wenn ich bei meinem Pserver /open ox eingebe, wird das event gestartet aber wenn ich /e oxevent_status 0 eingebe, wird das event nicht beendet. Gibt es noch einen weiteren Code zum schließen des OX´s thx für antworten und hilfe ;)
Was ist mit diesem Code falsch?! -_-
09/19/2010 - General Coding - 1 Replies
Hi, bin wohl neu hier in der Section. Kein Wunder. Ich habe nun einigermaßen den Dreh raus mit Hackcoding und der erste geht schief. Wollte einen CA-EU Hack machen. Die LTC Addy ist eig. richtig und die PTC's eig auch... Was ist falsch? CA schließt beim Ladebildschirm. #include <windows.h> bool IsGameReadyForHook() { if( GetModuleHandleA( "d3d9.dll" ) != NULL && GetModuleHandleA( "ClientFX.fxd" ) != NULL && GetModuleHandleA( "CShell.dll" ) != NULL )
was ist bei diesen code falsch?
09/13/2010 - AutoIt - 2 Replies
ich wollte kurz mal so eine passwort inputbox scripten: $input=InputBox("passwort-aufforderung" ,"bitte geben sie das passwort ein","wordspring","#") If $input="wordpsring"Then MsgBox(0,"Richtige Eingabe","Sie haben das richtige Passwort benutzt") Else MsgBox(0,"FalscheEingabe","@Error password incorrect") EndIf aber wenn ich in die inpubox wordspring reinschreibe kommt direkt die msg mit @error password incorrect. was mache ich falsch?
Hilfe! Code falsch?
08/16/2010 - General Coding - 3 Replies
Hey kann mir bitte jemand sagen, was an diesem code falsch ist? void NoSpread () { if(GetAsyncKeyState(VK_NUMPAD0) ) { *(float*) OFS_NOSPREAD = 1; }



All times are GMT +1. The time now is 11:51.


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.