Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 14:21

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

Advertisement



[C#] OpenProcess gibt 0 zurück

Discussion on [C#] OpenProcess gibt 0 zurück within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1

 
*~EliteTrader~*'s Avatar
 
elite*gold: 310
Join Date: Jul 2011
Posts: 316
Received Thanks: 46
[C#] OpenProcess gibt 0 zurück

Hi, ich hab da ein kleines Problem, was mich heute schon so manche Stunde erfolglose Recherche gekostet hat. Und zwar möchte ich unter anderem eine 32-bit DLL in einen 32-bit Prozess injecten. Dafür hab ich mir diverse C#-Injectoren angeschaut und versucht, diese in mein Projekt zu übernehmen, da ich zum selber schreiben leider zu wenig Ahnung von der Thematik habe. Bei allen Versuchen gibt die OpenProcess-Methode aber leider 0 zurück, obwohl die Prozess-ID richtig ist (im TaskManager überprüft) und ich das Ding sogar als Admin starte. Einige Auszüge davon:

Quote:
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr OpenProcess(uint dwDesiredAccess, int bInheritHandle, uint dwProcessId);

IntPtr hndProc = OpenProcess((0x2 | 0x8 | 0x10 | 0x20 | 0x400), 0, pToBeInjected);
oder mit allen Rechten
Quote:
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(
Int32 dwDesiredAccess,
Boolean bInheritHandle,
Int32 dwProcessId
);

IntPtr hProcess = OpenProcess(0x1F0FFF, false, ProcID);
In diversen Foren liest man von "Access Rights" und "SeDebugPrevilege". Im MSDN hab ich mich darüber auch schon informiert und ich denke, dass das helfen könnte. Wie man das allerdings in C# umsetzt hat niemand verraten Ein Anlauf war "System.Diagnostics.Process.EnterDebugMode();" , aber das feuert nur ne XamlParseException (ja, ich arbeite mit WPF aber keine Ahnung wie das nun zusammenhängen kann??). Hat jemand ne komplette Injector-Source parat oder wenigstens die Zeilen für die Zugriffsrechte? Wäre echt super!
*~EliteTrader~* is offline  
Old 07/05/2013, 18:41   #2

 
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
Was steht den in ProcID.
Bzw. wo ist der restliche code?
BladeTiger12 is offline  
Old 07/05/2013, 19:01   #3
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
GetLastError...

Edit: Was hast du überhaupt vor? Wenn deine Anwendung großteils p/invoke benutzt wärs vielleicht ne Überlegung wert, C++ zu benutzen.
Schlüsselbein is offline  
Old 07/05/2013, 21:14   #4

 
*~EliteTrader~*'s Avatar
 
elite*gold: 310
Join Date: Jul 2011
Posts: 316
Received Thanks: 46
Quote:
Originally Posted by BladeTiger12 View Post
Was steht den in ProcID.
Im letzten Test 7661, die vollkommen richtige Prozess-ID (laut Win8 TaskManager).

Quote:
Originally Posted by BladeTiger12 View Post
Bzw. wo ist der restliche code?
Von dem oberen Teil hab ich den Link noch.

Ich rufe da einfach die Inject-Methode auf. Die übergebenen Parameter hab ich auch geprüft.
Vom 2ten habs ichs mir nich aufgehoben. Würd ich mal raussuchen, wenns dringend ist.

Quote:
Originally Posted by Schlüsselbein View Post
GetLastError...
Verstehe leider nicht ganz, was du meinst...

Quote:
Originally Posted by Schlüsselbein View Post
Was hast du überhaupt vor?
Quote:
Originally Posted by *~EliteTrader~* View Post
Und zwar möchte ich unter anderem eine 32-bit DLL in einen 32-bit Prozess injecten.
Quote:
Originally Posted by Schlüsselbein View Post
Wenn deine Anwendung großteils p/invoke benutzt wärs vielleicht ne Überlegung wert, C++ zu benutzen.
Das wäre sicher ne Überlegung wert, aber leider behersche ich kein C++. Und gerade bin ich am Java lernen. Will mir das jetzt nicht auch noch unnötig kompliziert machen^^

Danke für die Antworten
*~EliteTrader~* is offline  
Old 07/06/2013, 01:13   #5

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
GetLastError() gibt dir den Error Code des letzten Errors aus. Kannste nach OpenProcess aufrufen und du hast die Fehlermeldung.

Schau mal hier für SeDebugPrivilege:
snow is offline  
Old 07/06/2013, 14:44   #6

 
*~EliteTrader~*'s Avatar
 
elite*gold: 310
Join Date: Jul 2011
Posts: 316
Received Thanks: 46
Quote:
Originally Posted by snow911 View Post
GetLastError() gibt dir den Error Code des letzten Errors aus. Kannste nach OpenProcess aufrufen und du hast die Fehlermeldung.
Hab es nicht mit GetLastError() versucht, sondern mit "Marshal.GetLastWin32Error();", da es in einem anderem Forum so empfohlen wurde. Die Methode spuckt mir den Code 5 aus, was Microsoft als "Access is denied" versteht.
Quote:
ERROR_ACCESS_DENIED

5 (0x5)

Access is denied.
Daher denke ich, dass SeDebugPrevilege mein Problem eigentlich lösen sollte.

Quote:
Originally Posted by snow911 View Post
Schau mal hier für SeDebugPrivilege:
Hab das mal in meinen Code mit einer Änderung übernommen. Aus der main-Methode hab ich eine normale Methode gemacht, die ich einfach aufrufe. Diese wird selbstverständlich vor dem anderen Code ausgeführt und "Marshal.GetLastWin32Error();" hat mir danach den Code 1300 zurückgegeben.
Quote:
ERROR_NOT_ALL_ASSIGNED

1300 (0x514)

Not all privileges or groups referenced are assigned to the caller.
Habs sowohl im Debugger, als auch im Explorer getestet (natürlich als Admin). Hätte nicht gedacht, dass das so komplex ist
*~EliteTrader~* is offline  
Reply


Similar Threads Similar Threads
_MemoryReadPointer gibt mir 0 zurück Oo
02/28/2011 - AutoIt - 4 Replies
Heyho, wollte mir für LC-Ger 'nen HP-Scanner basteln in AutoIt. Das ganze sieht bei mir zur Zeit so aus: #Include <Timers.au3> #include <EditConstants.au3> #Include <nomadmemory.au3> #NoTrayIcon WinWaitActive("")
GF gibt Itemshop Geld zurück !
01/24/2011 - Metin2 - 32 Replies
Hey... Also mein gildenleader wurde gebannt. Angeblich wegen Angelbotten.... Er is paar 40(IG weiblich xD) und ich weiß/wusste,dass er nicht hack weil er immer mit mir map1 gechillt hat,duelle gemacht hat etc.... JOa der hatte mit 48 aura G1 fast überall 5 bonis drinne etc. So jetzt wurde er halt gebannt und und was dann passierte könnt ihr im video sehn YouTube - Sm0keFarm gebannt...
ReadPrcessMemory gibt nur NULL zurück
07/30/2010 - General Coding - 6 Replies
IntPtr Handle = (IntPtr)FindWindow("nksp", null); string strFile; int iBytes; IntPtr iFile = (IntPtr)0x106445A8; ReadProcessMemory(Handle, iFile, out strFile, 8, out iBytes); Warum gibt der immer nur NULL zurück? Was mach ich falsch? Hab noch jetzt echt durch ganz google geklickt
iniRead gibt -1 zurück
05/10/2009 - AutoIt - 2 Replies
So hab ein kleines Problem. Ich arbeite gerade an einen Shortkey configurator. Das ganze ist ziemlich kompliziert(hört sich leicht an aber wenn ich euch mein Script zeige das ich habe würdet ihr über die Länge staunen ;) ) und benutzt viele Variablen. Aus diesen und und noch aus einen anderen Grund habe ich mich entschieden die Variablen,die die Werte aus der Ini erhalten, als Arrays zu arrangieren. Problem: seitdem geben diese Variablen nur -1 zurück(jede, eigentlich sollten nur 2 -1...
OpenProcess gibt konsequent error 87 zurück
10/05/2007 - General Coding - 5 Replies
Hallo, Ich arbeite im Moment an einem ProcessHandle. Allerdings bin ich ratlos, da eigentlich alles richtig ist, speziell die Parameter. Denn Error 87 besagt, dass die Parameter incorrect sind. Hier der C++ Code: HWND hWnd; DWORD thread; HANDLE hProcess;



All times are GMT +1. The time now is 14:23.


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