Tema destacado: Únete al Grupo Steam elhacker.NET
Autor
|
Tema: Duda tutorial RicardoNarvaja (Leído 837 veces)
|
.:UND3R:.
Desconectado
Mensajes: 1.960
Ingeniería inversa
|
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
|
|
|
|
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
Quizas sea porque E8 y E9 son los opcodes de los JMPs y CALLs... 
|
|
|
|
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
[-Franko-]
Desconectado
Mensajes: 57
|
Quizas 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
|
|
|
|
|
En línea
|
|
|
|
.:UND3R:.
Desconectado
Mensajes: 1.960
Ingeniería inversa
|
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
|
|
|
|
|
En línea
|
|
|
|
MCKSys Argentina
Desconectado
Mensajes: 1.222
Diviérte crackeando, que para eso estamos!
|
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.
|
|
|
|
« Última modificación: 3 Junio 2011, 21:03 por MCKSys Argentina »
|
En línea
|
--------------------- MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
|
|
apuromafo
Desconectado
Mensajes: 640
|
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..
|
|
|
|
|
En línea
|
|
|
|
|
|