Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 07:08

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

Advertisement



[Help] C++ YangDrop Dll

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

Reply
 
Old   #1
 
~Dezion~'s Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 182
Received Thanks: 132
Plz löschen

Guten morgen E*Pvp Community,
Ich wollte mir gestern eine kleine Dll erstellen, die ununterbrochen Yang droppt.
Die Dll lies sich wunderbar compilen, doch als ich die dann injectet hatte, wurde 1 Yanghäufchen gedroppt kurz dannach kaam eine Errormeldung (An exception (C0000005) occurred during DllEntryPoint or DllMain in module c:\dokumente und einstellungen\name\desktop\project1.dll)

Hier mein Source :

Code:
#include <vcl.h>
#include <windows.h>
#pragma hdrstop

#pragma argsused

void DropYang(DWORD yang)
{
	DWORD dwDropYang = 0x0041DF50;
	__asm
	{
		MOV ECX,DWORD PTR DS:[0x5F1D34]
		PUSH yang
		PUSH 0
		CALL dwDropYang
	}
}

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long _Reason, void* lpReserved)
{
	if(DLL_PROCESS_ATTACH == _Reason)
	{
		while(1==1)
		{
			DropYang(1);
		}
	}
	return 0;
}
Was mache ich falsch?
PS : Ich benutze den C++Builder von RAD.
Lg Dez~
~Dezion~ is offline  
Old 07/31/2010, 21:08   #2




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
In DLL_PROCCESS_ATTACH. Würde ich lieber CreateThread( null, 0, dropyangthread, Null, 0); einfügen kp obs genau richtig so ist schreib it handy und dann halt. DWORD WINAPI dropyangthread(LPVOID Args) { while(true){DropYang(1);}} ist aufjedefall besser.
bloodx is offline  
Thanks
1 User
Old 07/31/2010, 22:31   #3
 
~Dezion~'s Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 182
Received Thanks: 132
Wäre dir sehr dankbar wenn du es mir besser erklären würdest - wie gesagt bin blutiger Anfänger.
Aber ein Thx bekommst du aufjedenfall :P
Lg Dez~
~Dezion~ is offline  
Old 07/31/2010, 23:25   #4




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,537
Code:
#include <vcl.h>
#include <windows.h>
#pragma hdrstop

#pragma argsused

void DropYang(DWORD yang)
{
	DWORD dwDropYang = 0x0041DF50;
	__asm
	{
		MOV ECX,DWORD PTR DS:[0x5F1D34]
		PUSH yang
		PUSH 0
		CALL dwDropYang
	}
}

DWORD WINAPI YangDropThread(LPVOID Args)
{
while(true){
DropYang(1);
}
}
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long _Reason, void* lpReserved)
{
	if(DLL_PROCESS_ATTACH == _Reason)
	{
		CreateThread( 0, NULL, YangDropThread, NULL, 0, NULL);
	}
	return 0;
}
Finde es so viel besser oO du erstellst halt einen Thread für YangDrop ist besser aufjedenfall..

wenn du fragen hast frag hier oder MSDNS
bloodx is offline  
Thanks
1 User
Old 08/01/2010, 00:18   #5
 
~Dezion~'s Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 182
Received Thanks: 132
Hmm wenn ich die Dll injecte stürtzt Metin ab ._.
Both injection-methods failed !
(RemoteLoadLibrary ans Detourlinjection)
YangDroper.dll -> metin.exe
Target ist protectet? err:0

Lg Dez~
~Dezion~ is offline  
Old 08/01/2010, 00:42   #6


 
Ende!'s Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 6,379
Received Thanks: 7,998
Sicher, dass in DropYang alles korrekt ist? Hast du das irgendwo kopiert? Eventuell ist es nach dem Call noch nötig den Stack aufzuräumen (add esp, 0x8). Kommt drauf an, ob die Funktion das selber tut oder nicht.
Ende! is offline  
Thanks
2 Users
Old 08/01/2010, 02:42   #7
 
~Dezion~'s Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 182
Received Thanks: 132
Quote:
Originally Posted by Ende! View Post
Sicher, dass in DropYang alles korrekt ist? Hast du das irgendwo kopiert? Eventuell ist es nach dem Call noch nötig den Stack aufzuräumen (add esp, 0x8). Kommt drauf an, ob die Funktion das selber tut oder nicht.
Hab es einfach direkt aus OllyDBG koppiert.
Ich versuch es mal mit ADD ESP, 0x8
Lg Dez~

EDIT : Jetzt werden ~7 Häufchen Yang gedropt und anschliesend kommt eine Errormeldung (Die selbewie im ersten Post)
~Dezion~ is offline  
Thanks
1 User
Old 08/01/2010, 18:40   #8
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Du bist in der Lage Funktionen im Client zu lokalisieren, aber schaffst es nicht dein Programm zu debuggen? Mhmmmm...
SmackJew is offline  
Old 08/01/2010, 19:11   #9
 
~Dezion~'s Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 182
Received Thanks: 132
Das Problem ist behoben ^^
Ich hatte eine Funktion übersehen direkt unter dem eigentlichen YangDrop.
Kann geclosed werden, thx an alle die geholfen haben!
Lg Dez~
~Dezion~ is offline  
Thanks
1 User
Old 08/01/2010, 21:13   #10


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by ~Dezion~ View Post
Guten morgen E*Pvp Community,
Ich wollte mir gestern eine kleine Dll erstellen, die ununterbrochen Yang droppt.
Die Dll lies sich wunderbar compilen, doch als ich die dann injectet hatte, wurde 1 Yanghäufchen gedroppt kurz dannach kaam eine Errormeldung (An exception (C0000005) occurred during DllEntryPoint or DllMain in module c:\dokumente und einstellungen\name\desktop\project1.dll)

Hier mein Source :

Code:
#include <vcl.h>
#include <windows.h>
#pragma hdrstop

#pragma argsused

void DropYang(DWORD yang)
{
	DWORD dwDropYang = 0x0041DF50;
	__asm
	{
		MOV ECX,DWORD PTR DS:[0x5F1D34]
		PUSH [COLOR="Red"][yang][/COLOR]
		PUSH 0
		CALL dwDropYang
	}
}

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long _Reason, void* lpReserved)
{
	if(DLL_PROCESS_ATTACH == _Reason)
	{
		while(1==1)
		{
			DropYang(1);
		}
	}
	return 0;
}
eigentlich sollte es so heißen.

wenn nicht, bitte korrigieren, mich verwirren lokale variablen bei inline asm immer
Quote:
Originally Posted by ~Dezion~ View Post
Wäre dir sehr dankbar wenn du es mir besser erklären würdest - wie gesagt bin blutiger Anfänger.
Aber ein Thx bekommst du aufjedenfall :P
Lg Dez~
für solche ist das aber gar nichts
MrSm!th is offline  
Thanks
2 Users
Old 08/01/2010, 22:41   #11
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by MrSm!th View Post
eigentlich sollte es so heißen.

wenn nicht, bitte korrigieren, mich verwirren lokale variablen bei inline asm immer
Nein, [x] ist in dem Fall wie eine Dereferenzierung und würde auf den Wert an Adresse x zugreifen.
SmackJew is offline  
Thanks
1 User
Old 08/02/2010, 00:01   #12


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
jop schon klar.
und soweit ich weiß, greift man doch so auf variablen per asm zu oder nicht?
nur der variablenname müsste doch nur die adresse bedeuten.

ich muss zb. folgendes machen

__asm mov [abc], 5;

um 5 in abc zu bekommen.
MrSm!th is offline  
Thanks
1 User
Old 08/02/2010, 00:27   #13
 
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,344
Code:
int global = 0;
int global2 = 0;


int _tmain(int argc, _TCHAR* argv[])
{
	int local = 0;
	int local2 = 0;
	__asm
	{
		mov global, 1
		mov [global2], 1
		mov local, 1
		mov [local2], 1
	}
	printf("global:%d\nglobal2:%d\nlocal:%d\nlocal2:%d\n", global, global2, local, local2);
	system("PAUSE");
	return 0;
}
unter Visual C++

Code:
global:1
global2:1
local:1
local2:1
Press any key to continue . . .
Scheint wohl keinen Unterschied zu machen.


btw, SmackJew = schlurmann? ;O
ms​ is offline  
Thanks
1 User
Old 08/02/2010, 00:34   #14


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Hm, welche VS Version nutzt du denn?
Ich weiß nicht mehr recht, aber ich meine mich erinnern zu können, dass ich für die Version ohne [] mal nen Compilerfehler bekam.

Hast du es denn auch umgekehrt versucht? Dass du die Quelle einmal mit und einmal ohne [] nutzt? Würde man es dann wirklich als Pointer nutzen, müsste es ja bei der Version mit [] crashen oder nix passieren, da man ja auf Adresse 0x1 zugreifen würde...

Code:
int local1 = 1;
__asm mov eax, [local1];

Falls es schlurmann ist, willkommen zurück ;O
MrSm!th is offline  
Thanks
1 User
Old 08/02/2010, 00:44   #15
 
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,344
2010 Ultimate

Code:
int *global = new int(0);
int *global2 = new int(0);


int _tmain(int argc, _TCHAR* argv[])
{
	__asm
	{
		mov global, 1
		mov [global2], 1 
	}
	printf("global:%d\nglobal2:%d\n", global, global2);
	system("PAUSE");
	return 0;
}
Edit: Beide Pointer werden auf 1 gesetzt, nicht die Variable, auf die gezeigt wird.
ms​ is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[RELEASE] Yangdrop / Exp Easy einstellen!
07/30/2010 - Metin2 PServer Guides & Strategies - 6 Replies
Hallo liebe E*pvpers, als ich meine mop_proto bearbeiten wollte dauerte es mir zulange alles einzustellen, also habe ich mir ein script geschrieben das ich jetzt hier Pub stellen will. Was macht dieses Script? Das Script basiert auf PHP, also kann man es ganz einfach vom Internetbrowser aus starten. Danach hat man 6 verschiedene auswählen an Veränderungen, alle Veränderungen werden an der mob_proto verändert. Man kann die gold_max, gold_min, exp anheben oder verringern. Einfach die...
Yangdrop
05/21/2010 - Metin2 Private Server - 0 Replies
Hallo, Ich suche eine Mob_proto die komplett übersetzt ist und wo der Yangdrop angepasst wurde das man nicht zu viel droppt. Suche auch eine Quest um beim Stalli Pferd und Mg für Yang kaufen kann. Lg Fr33ak
Yangdrop????
02/15/2010 - Metin2 Private Server - 7 Replies
Hey leute ich hab nen neuen server und immer wenn ich yang rate auf 1000 mache gehts aber i wie nicht man kirgt nur 120 yang



All times are GMT +2. The time now is 07:08.


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