Hab was übersehen, konnte das problem nun lösen, dennoch danke für den versuch zu helfen :)
Hier kann nun zu.
Edit: Doch nicht zu, hab mich geeirrt ich poste einfach mal die routine, falls die euch so was bringt was ich eher bezweifel.
Code:
JLE 004AC7FC
MOV ESI,DWORD PTR SS:[LOCAL.5] ; Plain Packetstring kopiert nach ESI
CMP ESI,7E
JLE SHORT 004AC753
MOV ESI,7E
MOV EAX,DWORD PTR SS:[LOCAL.1]
CALL 004051A8 ; Sorgt für Speicher
MOV EDX,ESI ; Length bevor leerzeichen bei string wird nach EDX kopiert string bsp = test123 test1 test2 | test123 = Length 7
OR DL,80 ; OR Operation mit DL | 0x80 Ergebnis = 87 first byte beim Crypted Packet
MOV BYTE PTR DS:[EDI+EAX-1],DL ;
INC EDI
TEST ESI,ESI
JLE SHORT 004AC7E7
MOV EAX,DWORD PTR SS:[LOCAL.2] ; Pointer der aufs Plain Packetstring zeigt wird nach Eax kopiert
MOV EDX,DWORD PTR SS:[LOCAL.7] ; EDX = 0
MOV BL,BYTE PTR DS:[EDX+EAX] ; Packetbyte wird nach BL kopiert bei test123 (t)
INC DWORD PTR SS:[LOCAL.7]
MOV EAX,EBX ; AL hat nun den Wert von BL
ADD AL,0D0 ; AL += 0xD0
SUB AL,0A ; AL -= 0x0A
JNB SHORT 004AC785
ADD BL,4 ; BL += 0x4;
SUB BL,30 ; BL -= 0x30
JMP SHORT 004AC7AB
CMP BL,20 ; Switch Case
JNE SHORT 004AC78E
MOV BL,1
JMP SHORT 004AC7AB
CMP BL,2D
JNE SHORT 004AC797
MOV BL,2
JMP SHORT 004AC7AB
CMP BL,2E
JNE SHORT 004AC7A0
MOV BL,3
JMP SHORT 004AC7AB
CMP BL,0FF
JNE SHORT 004AC7A9
MOV BL,0E
JMP SHORT 004AC7AB
XOR EBX,EBX
CMP BYTE PTR SS:[LOCAL.6+3],0
JE SHORT 004AC7C6
MOV EAX,DWORD PTR SS:[LOCAL.1]
CALL 004051A8 ; String operation unwichtig
SHL EBX,4 ; Linksverschiebung BL 0x4
MOV BYTE PTR DS:[EDI+EAX-1],BL ; BL wert gesichert
MOV BYTE PTR SS:[LOCAL.6+3],0
JMP SHORT 004AC7E2
MOV EAX,DWORD PTR SS:[LOCAL.1]
CALL 004051A8 ; String operation unwichtig
MOV EDX,DWORD PTR SS:[LOCAL.1]
MOV EDX,DWORD PTR DS:[EDX]
MOV DL,BYTE PTR DS:[EDI+EDX-1] ; DL bekommt den gesicherten Wert
OR DL,BL ; DL wert mit aktuellen BL wert OR operation
MOV BYTE PTR DS:[EDI+EAX-1],DL ; DL zum Packet kopiert
INC EDI
MOV BYTE PTR SS:[LOCAL.6+3],1
DEC ESI
TEST ESI,ESI
JG SHORT 004AC769
CMP BYTE PTR SS:[LOCAL.6+3],0
JNE SHORT 004AC7EE
INC EDI
SUB DWORD PTR SS:[LOCAL.5],7E
JG 004AC746
Wiegesagt Encrypten alles kein Problem,
decrypten aufgrund der OR operation schon und im Packet selbst ist sonst nichtsmehr angegeben.
Packet sieht so aus:
0x87 0x9D 0x59 0x91 0x40 0xFF
Währe als Plaintext so:
59168 0
0x87 ^ 0x80 = 7 länge des packets
0xFF kennzeichnet das Ende
und die 4 Bytes in der mitte sind immer das Ergebnis der OR operation.