Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 14 Noviembre 2013, 03:20 am



Título: Saber de donde es llamada una función VB
Publicado por: .:UND3R:. en 14 Noviembre 2013, 03:20 am
Hola a todos, ya ando algo oxidado con visual basic, a ver si alguien me logra dar una mano. Estoy intentando localizar en que lugar se llama una función (esta no es llamada durante el proceso de depuración, pero si sé que se debe llamar una vez cumplida ciertas condiciones), llego a esta típica tabla de saltos:

Código
  1. 00409411   .  816C24 04 6B0>SUB DWORD PTR SS:[ESP+0x4],0x6B
  2. 00409419   .  E9 82870100   JMP N_Regist.00421BA0
  3. 0040941E   .  816C24 04 A70>SUB DWORD PTR SS:[ESP+0x4],0x1A7
  4. 00409426   .  E9 B5880100   JMP N_Regist.00421CE0
  5. 0040942B   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+0x4],0xFFFF
  6. 00409433   .  E9 58890100   JMP N_Regist.00421D90
  7. 00409438   .  816C24 04 670>SUB DWORD PTR SS:[ESP+0x4],0x67
  8. 00409440   .  E9 FB8A0100   JMP N_Regist.00421F40
  9. 00409445   .  816C24 04 2B0>SUB DWORD PTR SS:[ESP+0x4],0x12B
  10. 0040944D   .  E9 6E8C0100   JMP N_Regist.004220C0
  11. 00409452   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+0x4],0xFFFF
  12. 0040945A   .  E9 A18D0100   JMP N_Regist.00422200
  13. 0040945F   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+0x4],0xFFFF
  14. 00409467   .  E9 54930100   JMP N_Regist.004227C0
  15. 0040946C   .  816C24 04 270>SUB DWORD PTR SS:[ESP+0x4],0x127
  16. 00409474   .  E9 779A0100   JMP N_Regist.00422EF0
  17. 00409479   .  816C24 04 8B0>SUB DWORD PTR SS:[ESP+0x4],0x18B
  18. 00409481   .  E9 DA9A0100   JMP N_Regist.00422F60
  19. 00409486   .  816C24 04 170>SUB DWORD PTR SS:[ESP+0x4],0x117
  20. 0040948E   .  E9 0D9C0100   JMP N_Regist.004230A0
  21. 00409493   .  816C24 04 930>SUB DWORD PTR SS:[ESP+0x4],0x93
  22. 0040949B   .  E9 909C0100   JMP N_Regist.00423130
  23. 004094A0   .  816C24 04 8F0>SUB DWORD PTR SS:[ESP+0x4],0x8F
  24. 004094A8   .  E9 539E0100   JMP N_Regist.00423300
  25. 004094AD   .  816C24 04 9B0>SUB DWORD PTR SS:[ESP+0x4],0x9B
  26. 004094B5   .  E9 A69F0100   JMP N_Regist.00423460
  27. 004094BA   .  816C24 04 FFF>SUB DWORD PTR SS:[ESP+0x4],0xFFFF
  28. 004094C2   .  E9 89A00100   JMP N_Regist.00423550

¿Qué más viene?, saludos


Título: Re: Saber de donde es llamada una función VB
Publicado por: MCKSys Argentina en 14 Noviembre 2013, 04:04 am
Despues de esa tabla de saltos? Los eventos...

Aunque no estoy seguro de entender qué es lo que quieres hacer...

Saludos!


Título: Re: Saber de donde es llamada una función VB
Publicado por: apuromafo CLS en 14 Noviembre 2013, 15:22 pm
pero no es mas facil usar vbdecompiler e intentar encontrarla desde ahi...


Título: Re: Saber de donde es llamada una función VB
Publicado por: .:UND3R:. en 15 Noviembre 2013, 11:30 am
Gracias por sus respuestas. Me refería a cómo saber quien llama a una determinada función o método, ya que buscando referencias solo llego a la tabla de jmp y desde ella no logro obtener más referencias (la función no es llamada sin un serial, válido)

Pregunta a parte: ¿En la tabla de jmp de VB, se encuentran solo los eventos o también se encuentran saltos a procedimientos y funciones?. ¿Si no es así habrían distintas tablas?

Saludos

PD: VB decompiler no me entrega tal información :/


Título: Re: Saber de donde es llamada una función VB
Publicado por: apuromafo CLS en 15 Noviembre 2013, 15:18 pm
vb decompiler puedes crear un map, que si es importado, entonces claramente sabrás donde estás analizando  vas luego al jmp y ves que comentarios o labels tienes...

que no analize el jmp es una cosa, pero que tenga analizado el donde irá es lo importante... (ahora si no quieres usarlo , entonces busca nuevos tutoriales de visualbasic  hay bastantes de coco, hay varios en la lista de cls)


saludos Apuromafo

pd2: lo mejor es que te crees un archivo visual basic y lo analizes al máximo, luego testeas si te quedas con lo de IDA(map) o con el vbdecompiler(o unes ambos)



Título: Re: Saber de donde es llamada una función VB
Publicado por: MCKSys Argentina en 15 Noviembre 2013, 23:17 pm
Busca esta info:

Código:
Script IDC para IDA® de Reginal Wong
Disassembling Visual Basic Applications por Sanchit Karve
Visual Basic Image Internal Structure Format por Alex Ionescu
Visual Basic Reversed - A decompiling approach por AndreaGeddon

El IDC te dara mucha info, en particular las event tables...

Saludos!


Título: Re: Saber de donde es llamada una función VB
Publicado por: .:UND3R:. en 16 Noviembre 2013, 00:08 am
Me pondré al tanto, muchísimas gracias


Título: Re: Saber de donde es llamada una función VB
Publicado por: Flamer en 16 Noviembre 2013, 01:31 am
hola under me pregunto los jmp que ves no son los saltos a la IAT es una duda ya que de mi celular no veo el code que subistes...

Fijate lo que el evento le envia y lo que regresa...

O que buscas quieres encontrar el evento o chico malo por desirlo desde la tabla de jmp

Saludos flamer