Recopilación de mis codigos.

Iniciado por YST, 31 Mayo 2009, 22:58 PM

0 Miembros y 2 Visitantes están viendo este tema.

YST

Código (ASM) [Seleccionar]

include 'win32ax.inc'
.data
cBuffer db 'Hola',0
cClave db 'Hola',0
s db 257 dup(0)

.code
start:
stdcall Len,cClave
mov ebx,eax
stdcall Len,cBuffer
stdcall RC4,cBuffer,cClave,eax,ebx
invoke MessageBox,0,cBuffer,0,0
invoke ExitProcess,0
proc RC4,pBuffer,pPassword,pTamñoBuffer,pTamPass
pushad
dec [pTamñoBuffer]
;   For i = 0 To 255
; DoEvents
; s(i) = i
;   Next i
mov eax,s
mov byte[eax],0
inc eax
mov ecx,256
.bucle1_:
mov bl,byte[eax-1]
inc bl
mov  byte[eax] ,bl
inc eax
loop .bucle1_

;    For i = 0 To 255
;        DoEvents
;        j = (j + s(i) + Key(i Mod Len(sKey))) Mod 256
;        tmp = s(i)
;        s(i) = s(j)
;        s(j) = tmp
;    Next i
;j = ebx
;ja = esi
;I = edi
xor ebx,ebx
mov edi,-1
.bucle2_:
inc edi
xor esi,esi
mov esi,ebx
movzx eax,byte[s+edi]
add esi,eax
stdcall lMod,edi,[pTamPass]
mov ecx,[pPassword]
movzx eax,byte[ecx+eax]
add esi,eax
stdcall lMod,esi,256
mov ebx, eax
mov eax,s
mov cl,byte[eax+ebx] ; s(j)
mov ch,byte[eax+edi] ; s(i)
mov byte[eax+edi],cl
mov byte[eax+ebx],ch
cmp edi,255
jne .bucle2_
inc edi


;   For l = 0 To UBound(Buffer)
;       DoEvents
;       i = (i + 1) Mod 256
;       j = (j + s(i)) Mod 256
;       tmp = s(i)
;       s(i) = s(j)
;       s(j) = tmp
;       Buffer(l) = Buffer(l) Xor (s((s(i) + s(j)) Mod 256))
;   Next l
xor esi,esi  ;esi = l
dec esi ; esi = -1
.bucle3_:
inc esi
mov eax,edi
inc eax
stdcall lMod,eax,256
mov edi,eax
mov eax,ebx
xor ecx,ecx
movzx ecx,byte[s+edi]
add eax,ecx
stdcall lMod,eax,256
mov ebx,eax
mov eax,s
mov cl,byte[eax+ebx] ; s(j)
mov ch,byte[eax+edi] ; s(i)
mov byte[eax+edi],cl
mov byte[eax+ebx],ch
mov eax,[pBuffer]
add cl,ch
movzx eax,cl
add eax,s
movzx eax,byte[eax]
stdcall lMod,eax,256

mov edx,[pBuffer]
xor byte[edx+esi],al

cmp esi,[pTamñoBuffer]
jne .bucle3_
popad
ret
endp
invoke ExitProcess,0
proc lMod,c1,c2
push edx
xor edx,edx
mov eax,[c1]
idiv [c2]
push edx
pop eax
pop edx
ret
endp

proc Len,cCadena   ;Funcion que mide la cadena
push ecx edi
mov ecx,-1
mov edi,[cCadena]
mov al,0
repnz scasb
mov eax,ecx
not eax
dec eax
pop edi ecx
ret
endp
.end start


Yo le enseñe a Kayser a usar objetos en ASM

Erik#

Cita de: YST en  1 Junio 2009, 00:36 AM
Código (ASM) [Seleccionar]

include 'win32ax.inc'
.code
start:
stdcall DetectaExtención,"SoyUnExe.php.exe.YoSoyLaextensionreal"
invoke MessageBox,0,eax,0,0
invoke ExitProcess,0
;Descripcion: Esta función devuelve la extension de un archivo
; cRuta = Ruta del archivo
; by YST
proc DetectaExtención,cRuta
push ebx esi
xchg eax,[cRuta]
dec eax
.bucle:
inc eax
cmp byte[eax],0
jne .bucle
inc eax
.bucle2:
dec eax
cmp byte[eax],"."
jne .bucle2
xor esi,esi
dec esi
.bucle3:
inc eax
inc esi
cmp byte[eax],0
jne .bucle3
push eax
invoke GlobalAlloc,GPTR,esi
xchg ebx,eax
pop eax
sub eax,esi
stdcall cRtlMoveMemory,ebx,eax,esi
xchg ebx,eax
.salir:
pop  esi ebx
ret
endp
;Descripcion: Esta función funciona igual que la winapi RtlMoveMemory
; by YST
proc cRtlMoveMemory,cBuffer,Cpuntero,cCantidad
push esi edi
xchg edi,[cBuffer]
xchg esi,[Cpuntero]
.bucleb:
dec [cCantidad]
movsb
cmp  [cCantidad],0
jge .bucleb
pop edi esi
ret
endp
.end start


¿Podrias explicarlo?

YST

Claro,

Lo que hace es detectar el ultimo "." , luego crear un "buffer" con GlobalAlloc y metiendo hay el contenido que viene luego de ese "." , detecta el ultimo "." sumando el tamaño total de la cadena y luego en un bucle decrementando :P


Yo le enseñe a Kayser a usar objetos en ASM

Erik#

Buff, gracias, no entiendo mucho del code, tantas variables ebx, eax, ... xD

-Gosw-

Hombre eax, ebx y parecidas no son variables... Son registros del CPU... xDD

YST



Yo le enseñe a Kayser a usar objetos en ASM

Erik#

xD Se que son registros, lo que no me acordaba como se llamaba xD

ny0x

bien yst, deberias intentar hacer un crypter  ;)

YST

Cita de: x0ʎu en 26 Junio 2009, 19:16 PM
bien yst, deberias intentar hacer un crypter  ;)
Me lees la mente o que ? :xD El sabado publico un crypter ( estyo esperando que karcrack me haga la GUI )


Yo le enseñe a Kayser a usar objetos en ASM

Amerikano|Cls

Cita de: YST en 26 Junio 2009, 19:51 PM
Cita de: x0ʎu en 26 Junio 2009, 19:16 PM
bien yst, deberias intentar hacer un crypter  ;)
Me lees la mente o que ? :xD El sabado publico un crypter ( estyo esperando que karcrack me haga la GUI )

;-) ;-) lo esperamos  ;)




Mi blog:
http://amerikanocls.blogspot.com