Muy buenas.
Estaba siguiendo los pasos de un tutorial que encontre en una revista (hack&crack no me acuerdo q numero), habilitar/deshabilitar el regedit. Era solo un ejercicio por asi decirlo, pero al no tener una de las herramientas q utilizaban en dicho paper, decidi q con el olly seria capaz de encontrar los offsets q me hacian falta para completarlo con exito. No obtuve resultados, ya q no fui capaz de encontrar lo q (creo) debia buscar, me lie y no dormi, etc. Ahora por cabezon quiero hacerlo solo con el olly si fuera posible, antes q con el otro soft q usaban en la revista. Mis preguntas: donde miro los offsets? Porq no sale nada en references? No hay una manera de sacar los offsets teniendo las direcciones de memoria?
Muchas gracias por leer, y espero q alguien pueda darme un empujon q estoy un poco perdido y fascinado a la vez.
Hola.
Siempre suponiendo que no esté empacado:
Cuando cargues el ejecutable en Olly y éste se detenga en el Entry Point, le das a ALT+E y verás los "Executable modules".
Tu programa se sitúa siempre en la dirección base 00400000.
Executable modules, item 0
Base=00400000
Size=00483000 (4730880.)
Entry=005BED84 <Grrr.start>
Name=Grrr
File version=5.0.0.123
Path=X:\Archivos de programa\Grrr\Grrr.exe
Lo seleccionas --->botón derecho --->View executable file y ahí te lo saca con offsets (presenta la dirección base a cero).
A partir de aquí puedes buscar los bytes que te interesan mediante CTRL+B.
Suerte,
Mintaka
Gracias Mintaka, el olly es mucho mas complejo de lo q creia. Ahora he sido capaz de ver los datos en hex, supongo q poco me faltara para poder editarlos...
Aunque tengo un problema todavia, y es q al modificar el valor en hex de JE ( jump if equal, creo q era, ahora lo miro q esta en la otra makina con la k estoy probando), sigue dandome el mismo problema. Segun tengo entendido, deberia cambiar el valor hex "74", por "eb", para q no salte y pueda correrlo normalmente, pero ya cambie todos los offsets y sigue igual... algun consejo/idea/animo?
Gracias de nuevo por contestar, y a ver si con paciencia y saliva soy capaz de reparar esto. :)
Si quieres cambiar el salto, deberías cambiar 74 x 75 (JE x JNE).
Saludos!
Oh! Gracias MCKsys, como podras observar no tengo mucha idea de lo k estoy haciendo, pero supongo q como todas las cosas de esta vida, hasta q no desarmas las cosas y vuelves a armarlas, no te enteras de lo k realmente ocurre...
75 se corresponde con JNE, q vendria a ser, jump i f not equal? Y EB (en hex) entonces q siginifica?? Yo creia q ese valor se correspondia con JNE, total, cada vez estoy mas confuso...
Gracias por la aclaracion, a ver si ahora pasa algo ( modifike todos los valores 74 por eb, pero ahora q me decis esto, volvere a hacerlo uno por uno e ir probando con 75) :rolleyes:
EB es jmp, pero jmp N donde N es el numero de bytes.
Aqui tienes la referencia (por supuesto, en su idioma original :xD): http://www.intel.com/software/products/documentation/vlin/mergedprojects/analyzer_ec/mergedprojects/reference_olh/mergedprojects/instructions/instruct32_hh/vc145.htm (http://www.intel.com/software/products/documentation/vlin/mergedprojects/analyzer_ec/mergedprojects/reference_olh/mergedprojects/instructions/instruct32_hh/vc145.htm)
Saludos!
eso es para cambiar un salto, tambien es posible aveces forzarlo mas
je a jmp
o
je a NOP
igual los offset son direcciones, entender que cambiar, es lo que se aprende, te sugiero que leas el curso de ricardonarvaja, cuando termines lee este mismo toppic y creo que tu mismo vas a decir la respuesta.
saludos Apuromafo Cls
Muchas gracias por vuestra ayuda, se agradece explicaciones tan claras. A ver si saco un poco de tiempo/ganas y continuo con los experimentos, q hay mucha tela q cortar... Salute cumpas!