con este post se han ensañado, ya va por las 12.000 visitas
cuando llege a las 100.000 marcaras recort si no lo has vatido ya XD
cuando llege a las 100.000 marcaras recort si no lo has vatido ya XD
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: E0N en 7 Abril 2009, 15:20 PMyo pienso que lo que a pasado es, que se han picado a usar la herramienta con este post XD
Felicidades por la herramienta WHK, a la gente desde luego le ha gustado mucho, ya han visto este tema 4100 personas xDD
Getproadress proc PBaseDll:dword, PNombreFun:dword
LOCAL NumFun
push edx
push ecx
push esi
push edi
mov edx,[PBaseDll] ;Encontrar funcion pedida en la dll especificada
cmp word ptr[edx],'ZM'
je MZ
cmp word ptr[edx],'MZ'
je MZ
NoPE:
xor eax,eax
jmp NoEncontre
MZ:
xor ecx,ecx
add edx,[edx+3ch]
cmp word ptr[edx],'EP'
jne NoPE ;Cabecera PE
mov edx,[edx+78h]
;Tabla de Exportaciones
mov edi,[18h+edx]
mov [NumFun],edi
add edx,[PBaseDll]
mov edi,[edx+20h] ;AddressOfNames
add edi,[PBaseDll]
jmp busca
NoEs:
cmp ecx,[NumFun]
je NoEncontre
inc ecx
add edi,4
busca:
mov esi,[edi]
add esi,[PBaseDll]
push esi
push [PNombreFun]
call cmpsrt
cmp eax,0
jne NoEs
; AddressOfNameOrdinals
mov edi,[edx+24h]
add edi,[PBaseDll]
rol ecx,1h
add edi,ecx
movzx ecx,word ptr [edi]
; AddressOfFunctions
rol ecx,2h
mov esi,dword ptr [edx+1ch]
add ecx,[PBaseDll]
add ecx, esi
mov eax,[ecx]
add eax,[PBaseDll]
jmp bien
NoEncontre:
xor eax,eax
bien:
pop edi
pop esi
pop ecx
pop edx
ret 8
Getproadress endp
Cita de: YST en 4 Abril 2009, 00:28 AMy no se puede hacer mov de mem a mem pero creo que era mas rapido de mem a reg que hacer push mem y ala inbersa. ya te digo que yo no mido la velocidad, pero como de todas maneras tienes que pasarlo a un registro para usarloCita de: Arcangel_0x7C5 en 4 Abril 2009, 00:12 AM
A y no entiendo el porque de tanto "push" y "pop"
No es mas facil hacer mov a un registro
La razón principal es que quise que se explicara un poco el code mediante las variables y no se puede hacer un "mov [AddressOfNames].dword[ebx+20h] " esa es la razón , aunque facilmente se pueden eliminar todas las variables.
Cita de: YST en 3 Abril 2009, 04:22 AM
Una forma de obtener el handle de la kernel32 ( fuente: hackhound.org ):
mov eax, [fs:30h]
mov eax, [eax + 0ch]
mov esi, [eax + 1ch]
lodsd
mov eax, [eax + 08h]