PHP Forum - Coding Board
Juni 21, 2018, 11:41:57 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News:
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]
  Drucken  
Autor Thema: Fasm/masm/nasm/blasm?  (Gelesen 184 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Nop0x90
Full Member
***
Beiträge: 197


541820
Profil anzeigen E-Mail
« am: Juli 03, 2009, 12:12:27 »

Gespeichert

greetz Nop (ehem. Av0c4d0)
-Coding & RE


EBFE
Full Member
***
Beiträge: 109


Profil anzeigen E-Mail
« Antworten #1 am: Juli 03, 2009, 02:07:08 »

Gespeichert

PM an mich? Bitte vorher lesen: EBFEs PM FAQ
Nop0x90
Full Member
***
Beiträge: 197


541820
Profil anzeigen E-Mail
« Antworten #2 am: Juli 03, 2009, 02:29:19 »

Zitat von: EBFE;21057
sry)


nach links ein 0 bit nach rechts eine 1.
die bytes, die dargestellt werden sind einfach rein zufällig...

0x20 wär also das häufigste und 0x56 und 0x1b die seltensten bytes...
Code:
Folgende Bytesequenz:
20 56 20 20 2F 1B 2F 20 2F 56 1B 20
0 100 0  0  11 101 11 0 11 100 101 0
Diese Bitsequenz.

Das sind 23 bits also 3 bytes (vorher 12 bytes).
Natürlich müssen der Baum beim entschlüsseln auch vorhanden sein, aber darum geht es jetzt nicht.

Wie kann ich diese bitsequenz
Code:
01000011 10111011 1001010
in bytes packen und in eine datei schreiben?
« Letzte Änderung: Juli 03, 2009, 02:35:23 von Nop0x90 » Gespeichert

greetz Nop (ehem. Av0c4d0)
-Coding & RE


EBFE
Full Member
***
Beiträge: 109


Profil anzeigen E-Mail
« Antworten #3 am: Juli 03, 2009, 09:08:38 »

hier mal der vollständigkeitshalber komplette Linkoptionen:
Code:
\masm32\bin\ml /c /coff /nologo keygen.asm
\masm32\bin\Link /SUBSYSTEM:WINDOWS /FILEALIGN:512 /MERGE:.rdata=.text /MERGE:.data=.text /section:.text,RWE  keygen.obj > nul
Zum Thema: Stub.exe? Ich dachte du willst "richtig" packen/entpacken Zwinkernd
Zu der Bitsequenz: gibt einige Möglichkeiten. Kommt darauf an, wie die Bits "vorliegen".
Denn irgendwie musst du ja diese generieren/speichern.
Angenonnem, du hast erstmal die Sequenz in einem Zwischenschritt als Bytes vorliegen (wobei jedes Byte ein Bit darstellen soll). Dann kannst du einfach die Bytes einzeln durchgehen und über BTS setzen und BT abfragen (natürlich gehen auch AND/OR Operationen, aber bei BT/BTS kann man mit Indexen arbeiten).
Hier werden BT/BTS beschrieben, eventuell findest du auch noch andere nützliche Operationen:
http://home.comcast.net/~fbui/intel_b.html
Gespeichert

PM an mich? Bitte vorher lesen: EBFEs PM FAQ
Nop0x90
Full Member
***
Beiträge: 197


541820
Profil anzeigen E-Mail
« Antworten #4 am: Juli 03, 2009, 11:49:22 »

Zitat von: EBFE;21076
hier mal der vollständigkeitshalber komplette Linkoptionen:
Code:
\masm32\bin\ml /c /coff /nologo keygen.asm
\masm32\bin\Link /SUBSYSTEM:WINDOWS /FILEALIGN:512 /MERGE:.rdata=.text /MERGE:.data=.text /section:.text,RWE  keygen.obj > nul
Zum Thema: Stub.exe? Ich dachte du willst "richtig" packen/entpacken Zwinkernd
Zu der Bitsequenz: gibt einige Möglichkeiten. Kommt darauf an, wie die Bits "vorliegen".
Denn irgendwie musst du ja diese generieren/speichern.
Angenonnem, du hast erstmal die Sequenz in einem Zwischenschritt als Bytes vorliegen (wobei jedes Byte ein Bit darstellen soll). Dann kannst du einfach die Bytes einzeln durchgehen und über BTS setzen und BT abfragen (natürlich gehen auch AND/OR Operationen, aber bei BT/BTS kann man mit Indexen arbeiten).
Hier werden BT/BTS beschrieben, eventuell findest du auch noch andere nützliche Operationen:
http://home.comcast.net/~fbui/intel_b.html

Hi, Danke für die Antwort. Nein, ich will keine stub.exe machen, wir haben an uns vorbeigeredet. Ich loade mir jetzt nasm mal, was ich immernochnicht richtig kapier ist: Während man, wenn man zum Beispiel in Olly ne kleine decrypt routine nutzt, Register benutzt, kann man dann in nasm dafür variablen benutzen? Und dann direkt den (optimierten) bin-code angucken, wo das ganze dann mit registern ersetzt wurde?

EDIT: Mal ne dumme frage... Benutzt du notepad oder nen speziellen Editor?
« Letzte Änderung: Juli 03, 2009, 11:59:31 von Nop0x90 » Gespeichert

greetz Nop (ehem. Av0c4d0)
-Coding & RE


EBFE
Full Member
***
Beiträge: 109


Profil anzeigen E-Mail
« Antworten #5 am: Juli 03, 2009, 01:12:10 »

Zitat von: Nop0x90;21083
kann man dann in nasm dafür variablen benutzen? Und dann direkt den (optimierten) bin-code angucken, wo das ganze dann mit registern ersetzt wurde?Code:

DumpChildProcess proc process_id:DWORD, base:DWORD
LOCAL h_snap:DWORD
LOCAL proc_entry:PROCESSENTRY32
    LOCAL dumpcounter:DWORD
    mov dumpcounter,0
    invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0
mov h_snap,eaxCode:

push ebp
mov ebp,esp
sub esp, VARSIZE

Die Variablennamen sind quasi aliase für relative Speicheradressen, also in etwa so vorstellbar:
Code:

#define h_snap EQU [EBP-4]
#define proc_entry EQU [EBP-8]
und die beiden Parameter werden dann als
#define process_id EQU [EBP+4]
#define zweiterparameter EQU [EBP+8]
Jedenfalls - der Unterschied zwischen OllyAsm und "echt" ist halt Variablennutzung (lokal oder global über XYZ DD 0 definiert) im Sinne von Speicheradresse=Namensalias/Label und dass man Code leichter umschreiben kann.


Zum Editor: ich nutze aus Gewohnheit RadASM - dieser kann mit MASM, NASM, FASM umgehen, bietet Syntaxhighliting, Autoergänzung und Projektverwaltungshilfen. Allerdings sollen inzwischen mehrere gute Alternativen verfügbar sein, wie z.B WinASM Studio.
Gespeichert

PM an mich? Bitte vorher lesen: EBFEs PM FAQ
Seiten: [1]
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | New Look by Nolt Prüfe XHTML 1.0 Prüfe CSS