Seite 1 von 2
Programm mit PB Programm "mergen"?
Verfasst: 03.10.2004 20:29
von pvmichael
Hallo!
ich möchte ein universelles Programm schreiben, welches einen Passwortschutz für ausführbare Dateien (.exe) realisieren soll. Ich stelle mir das so vor, dass man ein Programm auswählt, das Passwort eingibt, und dann wird ein Produkt daraus erzeugt, bei dem zuerst mein PB Programm gestartet wird, was das Passwort abfragt und dann, sofern das Passwort korrekt ist, das Orginalprogramm ausführt. D.h. ich möchte in einer .exe zwei haben, wobei zu erst das eine, und dann evtl. das andere ausgeführt wird.
Hat jemand einen Tipp für mich, wie ich das am cleversten umsetzen kann?
Viele Grüsse
Michael
Verfasst: 03.10.2004 20:56
von Franky
Soll das ne art passwortgeschützter installer werden?
Dann machs doch so, dass du die exe, die gestartet werden soll, nach einem bestimmten Algorithmus zerschneidest und in bestimmter Reihenfolge includest, je nach dem, wie das passwort ist.
wenn der User dann das Passwort richtig eingibt einfach eine exe erstellen und die Datenstücke richtig zusammenfügen, speichern und dann runprogramm.
Verfasst: 03.10.2004 21:00
von pvmichael
Franky hat geschrieben:Soll das ne art passwortgeschützter installer werden?
Jein, es soll ein Programm passwortgeschützt werden, damit es niemand unberechtigtes starten kann.
Franky hat geschrieben:
Dann machs doch so, dass du die exe, die gestartet werden soll, nach einem bestimmten Algorithmus zerschneidest und in bestimmter Reihenfolge includest, je nach dem, wie das passwort ist.
wenn der User dann das Passwort richtig eingibt einfach eine exe erstellen und die Datenstücke richtig zusammenfügen, speichern und dann runprogramm.
D.h. das Programm wäre dann in einer Form auf der Festplatte, bei der ein Starten ohne Passwort möglich wäre. Das ist was ich nicht möchte.
Aber schonmal danke für Deine Antwort.
Viele Grüsse
Michael
Verfasst: 03.10.2004 21:28
von GPI
Programm verschlüssel und bei bedarf in Temp-Ordner entpacken, starten und löschen.
Verfasst: 03.10.2004 22:15
von pvmichael
GPI hat geschrieben:Programm verschlüssel und bei bedarf in Temp-Ordner entpacken, starten und löschen.
So lange es gestartet ist kann man es nicht löschen, und dann kann das Programm während der Laufzeit kopiert werden...
Verfasst: 03.10.2004 22:23
von Froggerprogger
Du kannst natürlich auch die EXE irgendwie direkt in den Speicher entpacken (irgendwie muss dass gehen, UPX macht das auch, ist aber wohl nicht einfach (so eine ähnliche Anfrage (ohne Ergebnis) gabs hier schonmal von jemandem, der eine DLL direkt in den Speicher laden wollte, ohne auf die Festplatte zwischenzuspeichern - da muss man irgendwas mit PE-Headern und Funktionsadressen oder so machen (keine Ahnung, ich... blubb), war die Antwort von irgendwem, aber ohne Beispiel.)
(oje, zwei Bier, und schon schrauben sich meine Gedanken gleichzeitig durch den Wind

)
Dann bleibt als einzige Möglichkeit für den 'Raubkopierer', den Speicher Deiner Anwendung zu kopieren (es gibt Software, die das macht).
100% Kopierschutz gibt's nicht.
Verfasst: 03.10.2004 22:28
von pvmichael
Froggerprogger hat geschrieben:
100% Kopierschutz gibt's nicht.
Ok, überredet
Und wie bekomme ich mein Passwortabfrageundprüfpurebasicprogramm mit einem X-beliebigen anderen Programm gemergt?
Verfasst: 03.10.2004 23:25
von Dristar
Am besten machst du das mit einem loader !!!!
Du codierst den code Block der exe und der Loader lädt die exe
ein und startet Sie aber noch nicht .Dann decodierst du die exe und startest das programm..... so machen das die Cracker

(patch loader)
Loader code
Code: Alles auswählen
Procedure.l RunProgramEx(Filename.s,Parameter.s,Directory.s,ShowFlag.l)
Global dwProcessId
Global dwThreadId
Global hThread
Global hProcess
Global ProcessInfo.PROCESS_INFORMATION
Info.STARTUPINFO : Info\cb=SizeOf(STARTUPINFO) : Info\dwFlags=1
Info\wShowWindow=ShowFlag
ProcessPriority=#CREATE_SUSPENDED
If CreateProcess_(@Filename,@Parameter,0,0,0,ProcessPriority,0,@Directory,@Info,@ProcessInfo)
dwProcessId = ProcessInfo\dwProcessId
dwThreadId = ProcessInfo\dwThreadId
hThread = ProcessInfo\hThread
hProcess = ProcessInfo\hProcess
EndIf
ProcedureReturn
EndProcedure
Wichtig ist das #CREATE_SUSPENDED flag das ,dass Programm zwar einlädt aber noch nicht startet.Gestartet wird das Programm mit
ResumeThread_(hThread)
ich hoffe du kanst es gebrauchen ?
ps:Ich kann dir auch den ganzen Loader code geben , bloss nicht hier

(e-mail)
mfg Dristar
Verfasst: 04.10.2004 13:08
von pvmichael
Dristar hat geschrieben:Am besten machst du das mit einem loader !!!!
Du codierst den code Block der exe und der Loader lädt die exe
ein und startet Sie aber noch nicht .Dann decodierst du die exe und startest das programm..... so machen das die Cracker

(patch loader)
...
ich hoffe du kanst es gebrauchen ?
Muß ich mir das mit dem Loader so vorstellen?
Es gibt die loader.exe und die xyz.exe, die xyz.exe ist so nicht lauffähig, erst duch starten der loader.exe wird die xyz.exe lauffähig, indem sie vom loader.exe aus gestartet wird? kann man loader.exe und xyz.exe zu einer .exe verwursten?

Verfasst: 04.10.2004 17:51
von Dristar
@pvmichael
genau

so habe ich das gemeint.
"kann man loader.exe und xyz.exe zu einer .exe verwursten? "
ja geht schon.Ich selber habe es nur mit ASM und der Delta Offset berechnung hinbekommen.Besser wäre es aber wenn mann die CreateProcess api zerlegt und so umschreibt das die API nicht von Festplatte lädt sondern aus dem Speicher herraus das Progamm startet.
Helfen kann ich dir dabei nicht , keine Ahnung wie das geht.
Ich breuchte Progamm die das machen.Dann kann ich mir das mit dem Debugger ansehen.
Wenn du da was neues hast schreib mir doch bitte (Das ist genau das was mich interessiert)
mfg Dristar