Duda tutorial RicardoNarvaja

Iniciado por .:UND3R:., 2 Junio 2011, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

.:UND3R:.

Hola a todos bueno les comento tengo una duda en el capítulo en donde se hablan de los desempaquetados
en el habla en una parte de Buscar jmp o call hacia el OEP y para realizarlo utiliza E9 para buscar JMP y E8 para buscar CALL

Mi duda puntual es ¿por qué se buscan los JMP y CALL con E9 y E8?


Gracias

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

MCKSys Argentina

Quizas sea porque  E8 y E9 son los opcodes de los JMPs y CALLs...  :)
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


[-Franko-]

CitarQuizas sea porque  E8 y E9 son los opcodes de los JMPs y CALLs...
Claro. Mira aqui te dejo un ejemplo de cada uno para que veas lo que son los opcodes que menciona MCKSys Argentina:

JMP:
Address   Hex dump          Command
0040100D  - E9 F4614E00     JMP 008E7206

CALL:
Address   Hex dump          Command                                  Comments
00401029    E8 72600D00     CALL 004D70A0

Saludos

.:UND3R:.

O: Osea OpCode no son solamente están en los programas PCode?
por qué cuando habla RicardoNarvaja sobre los programas en visualBasic en Pcode solo ahí habla de los opcode y son totalmente distintos?


Gracias

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

MCKSys Argentina

#4
Creo que estas confundiendo los temas.

Un programa en Visual Basic 6 (o 5) puede estar compilado de 2 formas: en codigo nativo o PCODE.

En codigo nativo vas a ver todo el codigo de la aplicacion en ASM (instrucciones x86).

Ahora, cuando esta en PCODE, las instrucciones no estan en ASM, estan expresadas usando instrucciones que ejecutara la maquina virtual (VM) de Visual Basic. La maquina virtual esta dentro de la libreria MSVBVM60.DLL (o bien MSVBVM50.DLL si es VB5).

Por eso es que ves que se llaman opcodes a los de ASM y a los de la VM de VB.

Ah! Cada instruccion a ejecutarse (ya sea por el procesador o por una VM) puede dividirs (normalmente) entre codigo de operacion (opcode) y operandos. El opcode es el identificador de la tarea que debe realizarse con los operandos. En MOV eax, ebx el opcode es el MOV. Lo mismo para instrucciones de una VM.
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


.:UND3R:.


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

apuromafo CLS

opcode son para mi la representacion de cierto comando,

hay diferntes opcodes para x86, x64, .net, linux,mac, arm y otros, ahora bien ese es por la plataforma, luego en la forma de compilar, ya menciono MCKSys en visualbasic, pero tambien hay visualbasic.net , que tiene opcodes de IL, o codigo intermedio, no es igual pero mantienen las mismas bases, solo representan un codigo, cuando ya se aprende a depurar y te das cuenta que hay personas que no quedan conformes con los opcodes y intentan virtualizar las cosas, crean MAQUINAS virtuales con nuevos opcodes, luego  puedes darte cuenta que el tema de analisis es mucho mas amplio y no es solo conocer el salto, o algo mas, themida por ejemplo usa  CISC o RISC, pero bueno hay muchos temas que se aprenden con el tiempo..sigue leyendo y aprendiendo..

, por lo que se ve es que las busquedas por bytes, son para cierto tipo de exes, hay tambien busqueda de comandos como "call offset" o "call constant", tambien hay varias variables que se pueden usar en ollydbg, yo suelo normalmente no buscar mucho y subir y bajar buscando cosas importante en el codigo..