Prozess beenden verhindern
-
Firmen sollten generell verboten werden.
-
_matze schrieb:
Firmen sollten generell verboten werden.
Jo! Wir gehen alle die Linke wählen und melden uns für Harz IV an. Normales Geldverdienen wird verboten...

Aber gerade wird es polemisch und OT... ich glaube hier muss mal ein Moderator einschreiten...
<duck&wech>
-
Martin Richter schrieb:
Basher schrieb:
Philosophie von die philosphie von windows (wenn man es so nennen darf) ist: gib dem 08/15-user was er will und fülle die kasse von ms mit reichlich $$$.

Eigentümlich:
- Unsere Firma versucht auch dem Kunden zu geben was er will.
- Auch wir machen dabei Annahmen über enen 08/15 Kunden, ohne Abwertung, es geht einfach um das was durchschnittlich benötigt wird, um eben enen Nutzen für den Kunden zu erfüllen.
- Und wir wollen gerne auch Geld verdienen. Nicht unangemessen viel, aber doch irgendwie entsprechend.Frage:
Bin ich nun böse?
Muss ich mich nun bei Heise selbst anzeigen?
Bin ich nun Bill Gates II?
Muss ich mich nun vor der EU Kommision fürchten?du hast mich nicht verstanden. es war eine reine feststellung, keine negative kritik an ms, völlig wertfrei zu sehen.

-
Basher schrieb:
du hast mich nicht verstanden. es war eine reine feststellung, keine negative kritik an ms, völlig wertfrei zu sehen.

An deinen völlig wertfreien Formulierungen musst du in Zukunft aber noch arbeiten.

-
Äääääähmm,
nachdem das Thema schon von der Ursprungsfrage weggedriftet wird:
Wir bräuchten jetzt eigentlich nur noch einen API-Wrapper um aus "(Windows-)Prozess beenden verhindern" jetzt ein "Fertigungs-Prozess einer Firma beenden verhindern" zu machen.
Das klingt schon ein wenig sachlicher als dieses Wahlkampfgetöse, gell?

Martin
*beineindieHändenehmundsehrschnellwegrenn*
-
in meinem fall ist es leider absolut erforderlich dass sich der zu programierende prozess nicht beenden lässt solange der andere läuft. da sowieso schon alle nach dem grund fragen: es ist eine Art Game-Guard. das macht natürlich nur Sinn wenn dieser sich nicht unabhängig vom Spiel beenden lässt(!).
Er funktioniert auch absolut einwandfrei und tut alles was er tun soll, das einzige problem ist dass man ihn einfach so über prozess-beenden beenden kann, ohne dass eine chance besteht das spiel mit zu schließen.
Der Guard führt ein paar Laufzeittest durch, klappt auch gut, nur ist es absolut sinnlos wenn man ihn einfach so unabhängig vom spiel schließen kann!!!
somit ist es absolut unumgehbar dass er sich während das Spiel lüft nicht schließen lässt!
gibt es nun irgendeine funktion/ ein event das das bewerkstelligen kann oder nicht?
mfg,
andi01.
-
Dann versteck den Prozess vor dem TaskManager/Process Explorer/...
Hab aber grad keinen Code parat.Und/Oder mappe eine DLL in den fremden Prozess, die kann dann gucken, ob alles normal ist.
Aber merke: Clientseitige AntiCheats können IMMER gecrackt werden. Ein ewiger "Krieg".
Die Cheater wollen cheaten, die nicht-Cheater wollen ein faires Spiel.Versuch's mit reichlich http://de.wikipedia.org/wiki/Security_through_obscurity .
Design ausdenken und alles vermurksen was nur geht, 20 verschiedene Cryptfunktionen allein für Stringliterale, AntiDebug Tricks usw...Hilft aber alles nix gegen einen guten Cracker der Zeit hat...
-
danke für den link, ich werd mich da mal einlesen. aber die fertige exe ist doch sowieso aus maschinencode und ein decompilern so dass man einen verwertbaren code in c++ erhält ist doch eh fast unmöglich, oder?
und auch danke für den ansatz den prozess zu verstecken, der einzige der bis jetzt erfolgsaussichten hat
. Nur leider habe ich überhaupt keine ahnung wie man das macht.hat vielleicht jemand ein kleines Codebeispiel oder einen Link da?
danke schonmal,
andi01.
-
andi01 schrieb:
danke für den link, ich werd mich da mal einlesen. aber die fertige exe ist doch sowieso aus maschinencode und ein decompilern so dass man einen verwertbaren code in c++ erhält ist doch eh fast unmöglich, oder?
Nö, ist gut möglich.
Man muss halt echt topfit mit Assembler sein sowie sich mit mit den verschiedenen Compileroptimierungen auskennen. Dann ist es aber immer noch ein Haufen Arbeit. Vor allem hat man meistens keine Namen und muss per Reverse Engineering sowie Trial&Error herausfinden was eine Funktion macht etc...Was ein guter Ansatz ist, ist der Hexrays Decompiler 1.1 für IDA 5.5. Der erzeugt recht brauchbaren C-Code aus Assembler-Code der mit kleinen, händischen Verbesserungen doch sehr gut lesbar ist, bis auf das fehlen aller Namen eben...
Kostet aber leider ne Menge, 350 $ IDApro Lizenz + 1500 $ Hexrays Lizenz, würde ihn mir gerne zulegen aber das geht über mein Studentenkapital und cracked hab ich nichts gefunden bis jetzt.
-
ja, aber ich glaube kaum dass sich jemand so viel mühe macht und soviel geld zahlt nur um ein kleines pc-spiel zu hacken, derjenige weiß mit seiner zeit bestimmt was besseres anzufangen.
jedenfalls ist das programm da es in maschinensprache ist als exe vor den normalen amateur-hackern die meist weder viel geld noch zeit investieren wollen ganz gut geschützt, das ist ja auch das hauptziel. richige "profihacker" auszusperren ist sowieso fast unmöglich weil die eigentlich immer einen weg finden (siehe cheattools, trainer, cheatmodule etc.).
für die meisten leute sollte es also ausreichend sein es als exe zu schreiben (es können eh nicht alle c++ und die wenigen der spieler die es können werden kaum bereit sein so viel geld +zeit zu investieren nur um ein paar lvl höher zu kommen, und wenn doch, dann sei ihnen ihr erfolg gegönnt
, is ja immerhin nur ein spiel und kein bankkonto
).ich brauche nur noch eine möglichkeit das beenden eines prozesses über den taskmanager zu verhindern.
mfg,
andi01.
-
andi01 schrieb:
ich brauche nur noch eine möglichkeit das beenden eines prozesses über den taskmanager zu verhindern.
Aber sonst geht's Dir noch gut? Wie wär's mit Treiber-Absetzen?
-
wieso? das fenster soll ja nicht unschließbar werden, sobald man das spiel schließt geht es ja mit zu. es ist ausschließlich mein ziel das eine fenster nicht unabhängig vom anderen schließen zu können, was ja auch der sinn eines game-guards ist. wenn jemandem dazu eine bessere möglichkeit einfällt bin ich gerne für Vorschläge offen.
edit: leider weiß ich auch nicht wie man einen treiber absetzt und ob das die richtige methode ist, das einzige ziel ist es dass man beide fe´nster (guard und spiel) nur ZUSAMMEN schließen kann.
mfg,
andi01.
-
andi01 schrieb:
ja, aber ich glaube kaum dass sich jemand so viel mühe macht und soviel geld zahlt nur um ein kleines pc-spiel zu hacken, derjenige weiß mit seiner zeit bestimmt was besseres anzufangen.
Erm, um einen non-obfuscated Gameguard ohne Encryption oder anderen Spielereien zu cracken ist wohl nichts aufwendiges...
-
naja wie auch immer, das kann ich ja dann auch selbst machen den quellcode komplizierter machen
.eigentlich bräuchte ich nur einen kleinen beispielcode für eine der beiden möglichkeiten:
1.Fenster vor taskmanager verstecken(wäre mir persönlich wesentlich lieber und ver mutlich auch einfacher zu bewerkstelligen)
2.das beenden des einzelnen Prozesses verhindern dass beide prozesse (game und guard) nur zusammen geschlossen werden können und nicht einzelnmein eigentliches Ziel ist es aber nur dass man den gameguard-prozess nicht einfach so beenden kann und das spiel weiterläuft und nicht irgendwie ein komplett unschließbares fenster zu erzeugen, falls also jemand einen funktionierenden besseren Vorschlag hat einfach schreiben, immerhin geht es eigentlich nicht um den weg wie ich das schaffe sondern um das ziel die beiden fenster praktisch 'abhängig' zu machen.
mfg,
andi01.
-
Rootkits, wenn nötig 2 die sich gegenseitg überwachen.
-
habe schonmal nach dem stichwort gegoogelt aber kein funktionierendes codebeispiel in C/C++ gefunden. wahrscheinlich ist es wirklich am besten das programm nicht unschließbar zu machen sondern einfach aus der prozessliste im taskmanager irgendwie zu entfernen.
hat vielleicht mal jemand ein kleines codebeispiel da?
danke schonmal,
andi01.
-
Also soll es ein Rootkit werden? Ich glaube, das Spiel wird bei mir keinen Gefallen finden. Aber frag doch mal bei Sony nach, die kennen sich da aus.
Anstatt zeit und Arbeit in irgendwelche nutzlosen Sicherheitsfeatures zu stecken, solltest du die Ressourcen nutzen, um die Software zu verbessern.
-
andi01 schrieb:
...aus der prozessliste im taskmanager irgendwie zu entfernen.
hat vielleicht mal jemand ein kleines codebeispiel da?reicht das?
BOOL EndProcess(LPTSTR lpszTargetProcess) { HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 processEntry; processEntry.dwSize = sizeof(PROCESSENTRY32); if(Process32First(snapshotHandle, &processEntry)) { do { if(strcmpi(processEntry.szExeFile, lpszTargetProcess) == 0) { HANDLE hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,processEntry.th32ProcessID); TerminateProcess(hProcess,NULL); CloseHandle(hProcess); CloseHandle(snapshotHandle); return TRUE; } } while(Process32Next(snapshotHandle, &processEntry)); } CloseHandle(snapshotHandle); return FALSE; }
-
danke erstmal für die antworten. muss ja nicht unbedingt ein rootkit werden. das ursprüngliche ziel ist nur dass der guard nicht unabhängig vom spiel geschlossen werden kann, wie ich das erreiche ist dabei eher unwichtig (rootkits, unschließbar machen etc. ).
edit: dein code gibt bei mir leider die folgenden fehler aus:
test2.cpp(5) : error C2065: 'TH32CS_SNAPPROCESS': nichtdeklarierter Bezeichner
test2.cpp(5) : error C3861: "CreateToolhelp32Snapshot": Bezeichner wurde nicht gefunden.
test2.cpp(6) : error C2065: 'PROCESSENTRY32': nichtdeklarierter Bezeichner
test2.cpp(6) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'processEntry'
test2.cpp(6) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(7) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(7) : error C2228: Links von ".dwSize" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
test2.cpp(7) : error C2065: 'PROCESSENTRY32': nichtdeklarierter Bezeichner
test2.cpp(7) : error C2070: ''unknown-type'': Ungültiger sizeof-Operand
test2.cpp(9) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(9) : error C3861: "Process32First": Bezeichner wurde nicht gefunden.
test2.cpp(13) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(13) : error C2228: Links von ".szExeFile" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
test2.cpp(15) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(15) : error C2228: Links von ".th32ProcessID" muss sich eine Klasse/Struktur/Union befinden.
1> Typ ist ''unknown-type''
test2.cpp(23) : error C2065: 'processEntry': nichtdeklarierter Bezeichner
test2.cpp(23) : error C3861: "Process32Next": Bezeichner wurde nicht gefunden.test2 - 17 Fehler, 6 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========muss ich noch irgendetwas includen oder bibliotheken einfügen?
mfg,
andi01.
-
Deine Versuche führen zwangsläufig zu
- Task-Manager schließen, sobald er aufgemacht wurde.
- Mit allen Entwicklungsumgebungen gleich verfahren, weil man mit der API auch Prozesse abschießen kann.
- Während das Spiel läuft, alle Wechselmedien abklemmen, da könnten Abschießprogramme drauf sein.
- Ausführen jeglicher anderen Programme verhindern, jedes könnte böse sein.
- Alle anderen laufenden Programme schließen, es könnte ein vorbereitetes Abschießprogramm sein.Wäre es einfacher, einen Teil der Spiellogik in den Wächter auszulagern und so erzwingen, daß gelegentliche Kommunikation nötig ist? Beide können sich gegenseitig überwachen und wenn der Kumpel stirbt, stirbt man mit.