Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Portable Executable File Unit (https://www.delphipraxis.net/95095-portable-executable-file-unit.html)

brechi 16. Jul 2007 09:54

Re: Portable Executable File Unit
 
Hi Olli, ich weiß dass wie die AV Programme in der Regel aufgebaut sind. Als Cheatprogrammierer kenn ich zumindest die Hooktechniken und teste so auch mal die ein oder anderen AV Programme. Ich hab mir aber schon länger nicht mehr KAV usw. getestet, daher kann ich nur aus Erfahrungen sprechen.
Bei Antivir war es z.b. so, dass ich ein mit UPX gepacktes Programm hatte, was nach dem entpacken und wieder packen mit UPX und einem anderen Komprimierungslevel schon die Exe nicht mehr erkannt hat. Da war wohl einfach eine Signatur für die Exe eingebaut, entpackt wurde sie wohl nicht. (Obwohl Antivir dafür ja eine entpackroutine hat). Hat mich nur geweundert warum sie da eine einfache Signatur gemacht haben und nicht auf die entpackte Exe. Naja gut, wird sich wohl mitlerweile geändert haben.
Dann das Beispiel Morphine. Wird ja größtenteils für Viren use bwneutzt und da bin ich mir doch eben sicher, dass zumindest zu meiner Zeit wo ichs mir angeschaut habe, generell alle mit Morphine gepackten Dateien als Virus eingestuft wurden. Ist mir auch relativ verständlich. Immerhin ist es OpenSource und man kann da immer kleine Änderungen machen und die gleiche gepackte Datei sieht auch immer anders aus. Macht mein Crpyter ja genauso, und denke nicht, dass die AV Programmierer für irgend welche kleinen Crypter jedesmal einen ALgorithmus entwicklen wollen der das Teil entpackt.
Und dann kommen wir noch zu Execryptor ( http://www.strongbit.com/execryptor_inside.asp ) ein kommerzielles Programm zum crypten. Die selbe Exe sieht auch immer anders aus, und entpacken kann man es nicht. Würd mich aml interessieren wie du dagegen vorgehen würdest. Bleibt ja dann auch nur für jeden Virus eine Signatur zu erstellen. Nur der Virenschreiben muss jedesmal die Exe neu durch den Crypter jagen und jedesmal wird sie nicht mehr erkannt.
Ein interessantter (wenn auch meienr Meinung nach unschön gelöster) Ansatz hjat ja asquared. Also API hooking um dann zu schaun ob man einen Virus hat. Dies könnten die AV Hersteller eigentlich super für jeglichen gecrypteten Code anwenden. Nur als Beispiel wieder Morphine, wo einige AV Hersteller ja wohl lange Zeit Probleme hatten den Programmcode zu entcrpyten. Ein Hook auf VirtualProtect (bzw. VirtualProtectNt) und man kann die Adresse vom entschlüsselten Code direkt vom Stack ablesen. Und dann darauf eben eine Signatur anlegen. Weiß nicht inwiefern die AV Hersteller das Scannen von ausgeführten Dateien überwachen. Damit kann man schon Viren die gecrypted sind erkennen ohne großartig für jede Version des Crypters den Entschlüsselunsgcode anzupassen. die ganzen Morphine Viren können so während der Laufzeit gecheckt werden, und der VirtualProtect Hook funktioniert für alle Morhpine Versionen.
http://uall.cheat-project.com/files/...ine_source.zip

Olli 16. Jul 2007 14:50

Re: Portable Executable File Unit
 
Zitat:

Zitat von brechi
Dann das Beispiel Morphine. Wird ja größtenteils für Viren use bwneutzt und da bin ich mir doch eben sicher, dass zumindest zu meiner Zeit wo ichs mir angeschaut habe, generell alle mit Morphine gepackten Dateien als Virus eingestuft wurden.

Denkbar, aber mit welchen der insgesamt 2 dutzend AV-Engines die es so gibt? :)

Zitat:

Zitat von brechi
Ist mir auch relativ verständlich. Immerhin ist es OpenSource und man kann da immer kleine Änderungen machen und die gleiche gepackte Datei sieht auch immer anders aus. Macht mein Crpyter ja genauso, und denke nicht, dass die AV Programmierer für irgend welche kleinen Crypter jedesmal einen ALgorithmus entwicklen wollen der das Teil entpackt.

Wollen nicht, oft ist es aber notwendig und oftmals sind zumindest die Packalgos wiederverwendbar.

Zitat:

Zitat von brechi
Und dann kommen wir noch zu Execryptor ( http://www.strongbit.com/execryptor_inside.asp ) ein kommerzielles Programm zum crypten. Die selbe Exe sieht auch immer anders aus, und entpacken kann man es nicht. Würd mich aml interessieren wie du dagegen vorgehen würdest. Bleibt ja dann auch nur für jeden Virus eine Signatur zu erstellen. Nur der Virenschreiben muss jedesmal die Exe neu durch den Crypter jagen und jedesmal wird sie nicht mehr erkannt.

Hmm, also ich wuerde sagen, dass dieses Produkt nur von paranoiden Idioten eingesetzt wird, die ihren Anwendern langsame Programme anbieten wollen, und eben von Malware-Autoren welche die "frei erhaeltliche" Version benutzen. So gesehen waere das einer der Packer, wo ich sogar fuer eine generelle Erkennung und Einstufung als potentielle Malware waere. Gibt da noch weniger als ein halbes dutzend anderer Kandidaten, fuer die aehnliches zutrifft. Bei Themida waeren es eben die Spielehersteller und die Malware-Autoren.

Zitat:

Zitat von brechi
Ein interessantter (wenn auch meienr Meinung nach unschön gelöster) Ansatz hjat ja asquared. Also API hooking um dann zu schaun ob man einen Virus hat. Dies könnten die AV Hersteller eigentlich super für jeglichen gecrypteten Code anwenden. Nur als Beispiel wieder Morphine, wo einige AV Hersteller ja wohl lange Zeit Probleme hatten den Programmcode zu entcrpyten. Ein Hook auf VirtualProtect (bzw. VirtualProtectNt) und man kann die Adresse vom entschlüsselten Code direkt vom Stack ablesen. Und dann darauf eben eine Signatur anlegen.

Eines der ersten Gebote in der AV-Branche: Niemals boesartigen Code ausfuehren, den man erkennen kann. Du weisst so gut wie ich, dass man solchen Hooks ueblicherweise einfach entgehen kann. Die Emulatoren haben im Zusammenhang mit Signaturen aber aehnliche Dinge eingebaut. Ist also nicht so, dass hier die Signaturen von gepackten Dateien hinzugefuegt werden muessen, wenn man denn einen Entpacker hat oder der Emulator die Datei entpacken kann.

Zitat:

Zitat von brechi
Weiß nicht inwiefern die AV Hersteller das Scannen von ausgeführten Dateien überwachen.

Meinst du nach dem Laden?

Zitat:

Zitat von brechi
Damit kann man schon Viren die gecrypted sind erkennen ohne großartig für jede Version des Crypters den Entschlüsselunsgcode anzupassen.

Packer erkennen heisst aber noch nicht entpacken. Und bei unserem Emulator ist es so, dass der die EXE auch aufm PPC-Mac oder irgendwelcher anderen exotischen Hardware "ausfuehrt" (also emuliert). Hooks sind zumindest fuer die Kern-Engine bei uns einfach zu systemspezifisch.

Luckie 16. Jul 2007 14:54

Re: Portable Executable File Unit
 
Ich hatte nachgefragt, weil ich morphine kenne und weiß, dass das von Antivren-Programmen erkannt6 wird. Aber was nützt es mir, wenn mein Virenscanner nicht anschlägt, aber dann der von Kunden? Und dann hängt das ja noch von der Definitionsdatei ab.

Der beste Schutz ist immer noch eine bedingte Kompilierung und entsprechend Funktionen nicht einkompilieren bei Shareware Versionen. Denn was im Kompilat nicht drin ist, kann nicht gecrackt werden.

Olli 16. Jul 2007 15:03

Re: Portable Executable File Unit
 
Zitat:

Zitat von Luckie
Der beste Schutz ist immer noch eine bedingte Kompilierung und entsprechend Funktionen nicht einkompilieren bei Shareware Versionen. Denn was im Kompilat nicht drin ist, kann nicht gecrackt werden.

Bingo!

ErazerZ 17. Jul 2007 17:35

Re: Portable Executable File Unit
 
Zitat:

  • Neu Dabei
  • AddSection - RawSize hinzugefügt, VirtualSize entfernt - wird automatisch von RecalcImageSize berechnet,
    lpData und dwDataLength hinzugefügt (das heißt, dass man die neue Sektion gleich mit Daten füllen kann).
  • DeleteSection - ImageSize wird über RecalcImageSize berechnet, ruft RecalcCheckSum am Ende der funktion auf!
  • ResizeSection - Damit kann man einzelne Sektionen vergrößern! Achtung: Ressourcen (OffsetToData) werden angepasst!
  • GetResources - Überarbeitet (RVA wurde falsch berechnet!), neue Struktur (enthält größe des Entries)
  • Resources Beispiel - Angepasst an die neue Struktur und Dump funktion hinzugefügt!
  • CalcChecksum - Damit wird die Check-Summe der PE Datei berechnet.
  • RecalcCheckSum - Berechnet automatisch die Check-Summe und ändert diese gleich in den Headern.
  • WriteImageSectionHeader - Schreibt alle ImageSections in dem Speicher!

ResizeSection hat Probleme gemacht aber geht schon :D

Luckie 6. Mai 2008 13:58

Re: Portable Executable File Unit
 
Zitat:

Zitat von ErazerZ
Du kannst damit zum Beispiel, einen neuen Code in die Anwendung "einschleusen" und diesen beim Start ausführen lassen.

Gibt es dazu auch ein Beispiel?

Um neuen Code einzuschleusen, reicht es da in die neue Sektion eine kompilierte Exe zu kopieren und dann den Einsprungspunkt umzubiegen?

ErazerZ 6. Mai 2008 17:42

Re: Portable Executable File Unit
 
ExeLoader.dpr ist ein Beispiel dazu. Das ist ein einfacher Execrypter der nichts anderes macht wie einen Code in einer anderen Exe-Datei einzuschleusen und dann beim ausführen ausgeführt wird und er zurück zum originellen Einsprungpunkt zurückspringt.

Luckie 6. Mai 2008 17:47

Re: Portable Executable File Unit
 
Gut, dann muss ich mir das noch mal genauer angucken.

darknes 16. Aug 2010 13:42

AW: Portable Executable File Unit
 
Mir ist klar das dieses thema schon sehr alt ist aber schon zu 2003 konnte man Execrypter entpacken(mupen).
Allso @ brechi ist das hier "Und dann kommen wir noch zu Execryptor ( http://www.strongbit.com/execryptor_inside.asp ) ein kommerzielles Programm zum crypten. Die selbe Exe sieht auch immer anders aus, und entpacken kann man es nicht"
Reiner müll vonwegen nicht entpacken das ich nicht lache.
Du hast dich zwar sehr viel mit av´s befasst,aber wenn du dich nur ein monat oder zwei mit dem manuel unpacking befasst denkst du dir das die routine eines av´s programmes ein witz gegen über von manuel unpacking ist.
@ErazerZ könntest du ein bsp:coden wo bestimmte sectionen gelöscht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz