Artículo · Ingeniería Inversa

Parcheando el software Wavepad del CTF

Rafael PeruCrackersRafael PeruCrackers 5 min de lectura

Introducción

Comenzaremos analizar un software de edición de voz, logre conocerlo por un CTFs que estuve y requería distorsionar la voz para obtener la bandera, es un software TRIAL que dura 14 días, de lo cual pensé, necesito este software para resolver CTFS a futuro así que me puse analizarlo y se pudo parchar, manos a la obra.

Información de la víctima

 

Víctima

WavePad

URL

www.nch.com.au/components/es/wpsetup.exe

Protección

Ninguna

Dificultad

Fácil

Herramientas

RDG Packer Detector y X32DBG

Objetivos

Crear parche

Reverser

Lior

Lugar / Fecha

19/12/17

Teams:

CrackSLatinoS – PeruCrackers

 

 

Atacando el software Wavepad

Antes de todo debemos saber en dónde se instaló la aplicación y crear un backup, por medidas de seguridad si alteramos un byte erróneo. Ver Figura 1.

 

Fig. 1 Generando Backup.

Vamos a ver cuáles son las limitaciones del software al no tener la licencia. Observamos en los cuadros amarillos que nos muestra que no tenemos licencia y que tenemos 14 días de prueba. Ver Figura 2.

 

Fig. 2 Ver cuadros amarillos.

 

Luego ver si tiene alguna medida de seguridad o si se encuentra empaquetado, para ello usaremos RDG Packer (http://www.rdgsoft.net/), es muy útil, ya que nos muestra que se desarrolló en Microsoft Visual C++ 8,0 y que no se encuentra empaquetado. Ver Figura 3.

 

Figura 3. Analizando la medida de protección y desarrollo.

Uno de los procedimientos es ponernos en el peor de los casos es decir que debemos caducar el software para ellos adelantamos la fecha en mi caso lo adelante 2 meses, Ver Figura 4.

 

 

Fig. 4 Adelantamos la fecha.

Procedamos a ejecutar el software y ver que nos muestra que el software  caduco y que debemos comprar el software en el cuadro amarillo. Ver Figura 5.

 

Fig. 5 Caduco el software

En este caso no vamos a realizar una validación por serial, ya que requiere más análisis, ya que debemos ver si realiza una validación online. Ver Figura 6.

 

Fig. 6 Validación por serial.

Tener en cuenta que cuando depuren el software deben caer en este BreakPoint  de Wavepad.exe, para lo que no estén en este BreakPoint deben presionar F9 o play (Cuadro amarillo), para poder llegar al BP adecuado. Ver Figura 7.

Fig. 7 Debemos llegar a este punto.

Vamos a buscar las cadenas de texto o string de la aplicación, como les comente tener en cuenta que debemos estar en el BreakPoint Wavepad.exe, ya que si no llegamos a este BP, buscara la cadena de texto de otras aplicaciones o dll. Ver Figura 8.

 

Fig. 8 Buscando string de wavepad.

Recordar que la palabra clave se obtuvo en la obtención de información (Ver Figura 5), debemos buscar la palabra demo, para ello x32dbg lo filtra y nos muestra una cadena peculiar (flecha roja), con dirección de memoria 01502309, doble clic en el texto de la flecha roja. Ver Figura 9.

 

Fig. 9 Buscando palabra clave Demo.

 

Llegaremos a la dirección 01502309 de lo cual vemos líneas más arriba los famosos saltos je con dirección 015022F2, de lo cual agregamos un BreakPoint y luego le damos Play o f9. Ver Figura 10.

 

Fig. 10 Veras el salto en donde no deseamos ejecutar el Bad Boy (Chico Malo)

 

Nota: Quizás cuando realice  PLAY o presione F9, no llegue al Salto para ello deberán retroceder y presionar F9 o play hasta llegar al BreakPoint que agregamos. Ver Figura 11.

 

Fig. 11 Botón para retroceder.

Cuando lleguen al BreakPoint tener en cuenta que por defecto no se realizara el salto y procederá a mostrarnos que el BAD BOY, indicándonos que compremos el software o ingresamos el serial, para evitar esto necesitamos forzar el salto para ello debemos cambiar el salto JE o JMP, este salto evitara si o si el BAD BOY, seleccione la línea a modificar y luego presiones la barra espaciadora de su teclado, le mostrara el código de la línea seleccionada y deberá modificar por JMP. Ver Figura 12.

 

Fig. 12 Cambios realizados JE por JMP.

 

Luego procedemos a presionar F9 o PLAY y se ejecutó todo el software sin mostrarnos, sin embargo nos aparece la tediosa ventanita que no tenemos la licencia. Ver Figura 13.

Fig. 13 Cuadro amarillo y rojo nos muestra que no tenemos licencia.

 

Pasaremos a generar nuestro parche, vamos a realizar clic secundario luego clic en Parches. Ver Figura 14.

 

Fig. 14 Generando nuestro Parche.

 

Haga clic en Aplicar parche, luego lo guardamos con el nombre de wavepadpatch.exe, y guardar. Ver Figura 15.

 

Fig. 15 Guardando nuestros cambios y generando nuestro patch.

Pasaremos a ejecutar la aplicación y obtenemos el software funcional. Ver Figura 16.

Fig. 16 Funciona: D

 

Conclusión

  1. Este método es la más básica que debemos conocer, buscando el string o la cadena de texto.
  2. No presenta la seguridad o empaquetamiento de la aplicación.
  3. Se puede cambiar más saltos en el string para que nos aparezca que tengamos los registros.

Saludos: Bueno saludo a Omar Jacobo de Backtrack Academy por publicar los artículos, que últimamente estuve flojo porque estuve en tres CTFs muy interesantes, otro saludo a Davicorm por enseñarme los tips, a Nox por los consejos aunque pocos XD, a Apuromafo por los tutos y ayuda en ctfs, a Softdat por los videos tutoriales en Youtube, y saludo Abel por su primer video de reversing. 

 

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Pentesting .

Rafael PeruCrackers

Escrito por

Rafael PeruCrackers

Estudiante de la ingenieria Inversa usando las herramientas de Ollydbg y el actual IDA PRO, actualmente me encuentro investigando sobre Creacion de Exploit, con animo de ayudar a las personas que les interesa el mundo del reversing, :)