Programm unterdrückt copy & paste :O

nonpretium

New member
Ich habe fürs Studium ein mehr oder minder sinnvolles kleines Programm, welches mir virtuelle Vorlesungen erlaubt. Soweit so gut. Leider geht nach dem Start des Programms die Kopier und Einfügenoptionen verloren - nicht nur Programmintern, sondern auf der gesamten Windows Oberfläche.

Für mich als Multitaskingjunkie ist das der Horror. Zwar erlaubt es mir noch das Kopieren von Daten mit STRG C, aber nicht das einfügen (auch nicht über Kontextmenüs). Die Einträge fürs Einfügen werden immer grau hinterlegt.
Es ist, als ob unser Prof mit dem Programm das Einfügen komplett ausgeschaltet hätte.
Zum Prog. kann ich leider nicht viel sagen, außer dass es klein ist, ein paar .glo .tak .tat .exe .ini .dll und .log Dateien enthält.
Ich kenne mich damit nicht so aus.

Mich interessiert eigentlich nur wie ich wieder die Einfügenfunktion nutzen kann. Denn wenn ich sein Programm auf hab, kann ich z.B. auch nichts in Thunderbird, Word oder Mozilla einfügen. Es ist also tatsächlich auf der gesamten Oberfläche ausgeschalten.

Hat jemand Ideen? Meine Vorstellung ist, dass er sie vllt Windowsseitig unterdrückt oder gar einen Dienst deaktiviert hat - und man diesen nur wieder starten muss?
Bei WinXP ist es übrigens das selbe Resultat.

Das Prog gibts übrigens hier: klick mich.
 
Zuletzt bearbeitet:

ChiefWiggum

New member
Man könnte in dem Programm nach Clipboard-Systemcalls suchen und diese ggf rauspatchen bzw durch eine zusatz-dll detouren und sofort beenden lassen.
Ich weiß jetzt nicht obs vielleicht noch Hooks verwendet werden um ggf ctrl+c/v bzw irgendwelche clipboard-events abzufangen(gibt es sowas?) aber wenn die oben genannte Methode funktionieren würde, ist es Verboten die .exe zu reversen? Ist das Detouren per dll irgendwie "legaler"?
 

Chakky

Member of Honour
ich vermute mal das programm leer sofort das clipboard wieder.

eine variante wäre das ganze in einer VM laufen zu lassen sollte ja dann nur die VM betroffen sein und nicht das komplette Hostsystem
 

LaNdRiX

New member
Hast du deinen Prof mal gefragt, ob das Absicht ist und wenn ja, was das soll?
Könnte ja gut sein, dass das nur ein Bug ist. Also, dass ers nur fürs Programm verbieten wollte und nicht fürs ganze System. Vielleicht findet er ja eine andere Lösung. zB das Kopieren innerhalb seines Programms zu verbieten und nicht das Pasten ausserhalb :D
 

nonpretium

New member
Na ja ob man eine neue dll hinzufügt oder die exe verändert ist egal, das Programm läuft ja auf unseren Heimrechnern, in so fern können wir damit machen was wir wollen.
Er hat da son doofen Lerneffekt von dem er immer redet: in dem wir uns PowerPoint-ähnliche Präsentationen anschauen können und uns das wichtigste daraus in ein Textfenster eintippen können. Es ist aber nicht möglich die Folien auszudrucken oder irgendwie zu kopieren.
Soll mir egal sein was er sich mit den Programm gedacht hat, aber dass es das ganze Windows lahm legt ist doof. Denn eine virtuelle Vorlesung geht durchaus mal nen halben Tag und da macht man noch andere Sachen nebenbei... .
Dem Prof interessiert das herzlich wenig ob wir mit dem Programm klar kommen, es stürzt auch ab und zu mal ab oder verbindet sich nicht mehr mit dem Server auf dem die Folien gelagert sind.

Ich würd jetzt pauschal mal fragen wie man so eine dll erzeugt und was da rein muss, aber hab davon nicht viel Ahnung und das frisst wohl zu viel Zeit.

Danke trotzdem für Eure Hilfe :S.
 

ChiefWiggum

New member
Na ja ob man eine neue dll hinzufügt oder die exe verändert ist egal, das Programm läuft ja auf unseren Heimrechnern, in so fern können wir damit machen was wir wollen.

Naja leider nicht, siehe Cracks von Games etc ;)

Ich würd jetzt pauschal mal fragen wie man so eine dll erzeugt und was da rein muss, aber hab davon nicht viel Ahnung und das frisst wohl zu viel Zeit.
Hm, etwas mit der Materie müsstest du dich schon auseinandersetzen, ist aber eig relativ einfach.

Schritte:
1.) Dll in den Prozess injizieren(ob du dafür deinen eigenen Loader schreibst - Siehe hier - oder WinJect/whatever benutzt ist eig egal)
2.) Die DLL ruft die detour()-Funktion für ein paar gewisse WinAPIs die du blockieren willst auf/patcht in die Funktion einen Assembler-jump(ersteres ist leichter für den Laien^^) und ersetzt sie mit deinen eigenen (eg return 0), eventuell benutzt
Als Detour-Library könntest du evtl Detours - Microsoft Research die Express-Variante nehmen, wobei du dort nur 1ne Funktion umleiten kannst. (Das würde für OpenClipboard-zeugs ja reichen, wenn die Funktion einen ungültigen Handle zurückgibt ists doch kein Problem^^)


Lg
 

nonpretium

New member
Ohweh, ich verteh da nur Bahnhof :S.

Zu dem Verändern, da hast Du sicher Recht, aber wer schnüffelt auf meinen Rechner rum ob ich da was hinzufüge?
Na ja is eh egal, ich bin damit überfordert. Da sollte ich eher was in Richtung Informatik studieren statt Wirtschaftswissenschaft :S.

Danke aber trotzdem für die Mühe.
 
Zuletzt bearbeitet:

ChiefWiggum

New member
Hmm, vielleicht schreib ich ein Tutorial drüber wie man spezifische WinAPI-Aufrufe verhindert. Wäre ja gut um beim Gewinnspiel mitzumachen M)
 

ChiefWiggum

New member
Also meinen PoC hab ich jetzt schonmal ^^.
Jetzt muss ich das ganze nur noch vernünfig kommentieren
und noch in Tutorialform bringen, dann passt das =p
bthhfor20b93fn2np.png
 

ChiefWiggum

New member
Das hat nicht großartig was mit dem Programm zu tun =p
der Code den du im Hintergrund siehst ist einfach nur dazu da, jede Sekunde(Sleep 1000 ms ;)) das Clipboard zu löschen.
Je nachdem kann man die Dll dann so einstellen, dass das Programm nicht merkt, dass das Clipboard nicht gelöscht wird, aber zu Demonstrationszwecken hab ich einfach mal den Rückgabewert geändert.
Die komplette Erklärung bekommst du dann noch zu Gesicht^^
 

nonpretium

New member
Cool. Ich bin immer wieder erstaunt was es alles gibt. Und dass es Leute gibt die das beherrschen. Ich hab da großen Respekt davor^^.
Ich hatte immer die Angst, dass wenn ich sowas lernen würde, es in 5 Jahren wieder völlig nutzlos wär, weil die Entwicklung in der Informatik so schnell voranschreitet. :)
 
Oben