Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Herramientas
Frase
Muchas cosas hay portentosas, pero ninguna como el hombre. Tiene recursos
para todo; sólo la muerte no ha conseguido evitar. Sófocles
2
3
Información
Autor Apuromafo
Descarga http://www.heaventools.com/download/rtsetup.e
xe
3
4
Introducción
Hola,aprovecho de escribir algo más, veamos hasta donde llegamos.
Desarrollo
Para dar inicio completamos la tabla de sha1, con ayuda de sharex o bien cff explorer,
4
5
HKCR, con el recuerdo de pexplorer que sus licencias servían poco o nada, esta vez me
centraré en revisarlo bien y ver si necesita algun parche adicional luego.
Comenzamos con ExeinfoPE:
5
6
A modo general las licencias existen personal, business, y otras para consola…las licencias
son válidas durante un solo año y una vez terminado seguirá siendo funcional, pero no
tendrán acceso a nuevas versiones, pero si liberan una app cada 2 o 3 años, es claro que
siempre obligan al usuario a comprar la nueva versión.
<img5: about>
6
7
7
8
arriba del about hay un evento, de seguro está del FormActivate , al ver quien lo llama, veo
que es condicionado
<img9:idr refiere que activa o no un timer desde main, puede que se relacione con el
registrado o no registrado>
8
9
a primera vista todos son set text..pero no veo ninguna comparación aún, luego se ven
estilos y colores.
9
10
10
11
así que claramente veamos que pasa…voy al depurador, establecer la variable en 1 y ver
cómo funciona:
11
12
eso fue rápido, veamos el menú de help: también cambió, así que estamos registrados
reinicio con los cambios y no ha vuelto a pasar nada, así que los parches se quedan, sea
que tenga relocations no le afectan al menos en estas pruebas con app pequeñas o
grandes.
Idea Resultado
12
13
y tenemos ahi un postulante, haré uso de un plugin llamado Multiline Ultimate Assembler
el cual está disponible en https://rammichael.com/multimate-assembler
en mi caso yo lo he configurado hace mucho:
13
14
fijo una dirección con string le puedo colocar vista en ascii o unicode y con esto iremos
viendo las string
desde Multiline verán que es muy rápido <dirección>, @label, “string” y separador\0
ese es la idea básica, luego es es ir armando direcciones con un string largo y convertirlo
en el string deseado,
el tema es elegir bien las direcciones y que no sean usadas hago una prueba sencilla:
14
15
15
16
nótese cómo ha parchado sin problemas, ahora bien cómo digo las direcciones de string es
un tema estas son unicode para evitar tanta captura, dejo el código final “restuner.asm”
;strings sin uso de un .pas
<5A5E48> ;antes es un string de una ruta de treeview
@1:L"Apuromafo\0"
L":)\0" ;relleno
<5A5F90>;antes es un string de una ruta de treeview
@2:L"Business\0"
L":)\0";relleno
<5A4F50>;antes es un string de una ruta de treeview
@3:L"1000\0"
L":)\0";relleno
<5A3BEC>;antes es un string de una ruta de treeview
@4:L"Never\0"
L":)\0";relleno
;parche trial a registrado
<6E11B8>
or byte ptr ds:[eax], 0x1
;parches en la descripción
<6E1210>
mov edx, @1 ;establece apuromafo
add edx,0 ;también se podrian 3 nop
<6E1236>
mov edx, @2 ;establece business
add edx,0;también se podrian 3 nop
<6E125C>
mov edx, @3 ;establece 1000
add edx,0;también se podrian 3 nop
<6E1282>
mov edx, @4 ; establece Never
add edx,0;también se podrian 3 nop
;algo adicional colores Azul o similar
<006E1A35>;color expires (never)
mov edx,0xC01F1C
<006E13DA>;color web (la web)
mov edx,0xC01F1C
El resultado final
16
17
17
18
Hidden Check
Para encontrar esta limitación había que usar el programa, lo primero que observo es que
escribe demo version el about, lo sabemos (no es cómo para morirse, lo ignoro por el
minuto, luego veo que al guardar el programa agrega una cadena Unpaid evaluation, esto si
es de importar, porque en cuanto carguemos un programa agregará ese comentario al
programa para encontrarlo primero buscamos las referencias, luego %s que hace alusión a
la concatenación de string, de seguro a nadie le importa una string concatenada o normal,
así que sigamos este determinará el cambio de una variable mas adelante, para verificar la
versión (dirá en el log que es de evaluación), entonces luego cuando carguemos la
aplicación hará la confirmación y dirá editado por la version no pagada de resource turner
<img27:Stub Unpaid>
para llegar a este lugar
<img29:salto responsable>
18
19
con tal de evitar el salto, pero por otro lado igual para asegurarme que no llegue aquí
este es el lugar que debemos evitar y agrego al listado de parches
<73C852>;Hidden check1
cmp eax,eax
nop
<73C994>;Hidden check1
jmp 0x0073D536
<img29:hiddencheck \t>
LUEGO de hacer las pruebas,
1) aplicación con comentario y información, guardo los cambios, se ven esos cambios
2) aplicación al reabrir no ha sido editado el comentario y funciona en orden
<5364FA>;HIDDENCHECK2
DB 00
<536503>;HIDDENCHECK2
db eb
<536504>;HIDDENCHECK2
db 20
19
20
Resumen de la experiencia
Se logró el objetivo, y el que le sirva , pues a usarlo, el que no, pues puede guardarlo
en un baúl de recuerdos, se aprecian varias opciones, así que puede ser prometedor ,
hago las pruebas y todo funciona bien :) , antes de mandar el tutorial no había visto el
programa en acción, sabía que podía tener algo más.
20
21
Palabras finales
Pues la mejor experiencia de aprender es intencionado, no hacer por hacer, el éxito
irá de la mano del compromiso que te propongas.
Mis Agradecimientos para quienes han logrado leer hasta aquí,les dejo cordialmente
invitados a conocer el proceso de Ingeniería inversa a través de los manuales, maestros y
conocimiento que existe hoy en día.
saludos cordiales a la lista de PeruCrackers, Crackslatinos,
Grupos webs cómo TSRh, Apuromafo.net, Seek and Destroy y cómo no, a ti por leer.
Apuromafo CLS
21