elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  [Ayuda!]Problema con procedimientos Irvine
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda!]Problema con procedimientos Irvine  (Leído 13,999 veces)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #10 en: 1 Diciembre 2011, 02:24 am »

Hola, en el enlace que pasaste:
http://kipirvine.com/asm/examples/index.htm

los include de la libreria irvine no se si realmente son compatibles con masm.

Con visual cpp fue tan facil como:
Código
  1.  
  2. unsigned int __stdcall WriteString();
  3. int main()
  4. {
  5. char *hello = "hola mundo";
  6. __asm{
  7. mov edx, hello
  8. }
  9. WriteString();
  10. system("pause");
  11. return 0;
  12. }
  13.  
solamente hubo que agregar en la opcion del linker irvine32.lib para que pueda resolver el simbolo WriteString. Y funciona bien.

primero, que en masm no he podido hacer el include de irvine32.inc, se supone que es para masm, pero a mi me ha creado conflicto SmallWin.inc que resolvi haciendo el prototipo manualmente.

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4.  
  5.  
  6. include \masm32\include\windows.inc
  7. include \masm32\include\kernel32.inc
  8. include \masm32\include\msvcrt.inc
  9.  
  10. WriteString PROTO
  11.  
  12.  
  13. includelib \masm32\lib\kernel32.lib
  14. includelib \masm32\lib\msvcrt.lib
  15. includelib Irvine32.lib
  16. .data
  17. szMsg db "Hola a todos",0
  18. .code
  19.  
  20. start:
  21.     mov edx, offset szMsg
  22.     call WriteString
  23.     invoke ExitProcess, 0
  24. end start
  25.  
Igual no funciona,  por alguna extraña razon no tiene un handle valido a la consola.

No uso masm, no se si tendra alguna vuelta mas, pero en si, tal cual esta deberia funcionar.


En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #11 en: 1 Diciembre 2011, 04:54 am »

Hola, en el enlace que pasaste:
http://kipirvine.com/asm/examples/index.htm

los include de la libreria irvine no se si realmente son compatibles con masm.

Con visual cpp fue tan facil como:
Código
  1.  
  2. unsigned int __stdcall WriteString();
  3. int main()
  4. {
  5. char *hello = "hola mundo";
  6. __asm{
  7. mov edx, hello
  8. }
  9. WriteString();
  10. system("pause");
  11. return 0;
  12. }
  13.  
solamente hubo que agregar en la opcion del linker irvine32.lib para que pueda resolver el simbolo WriteString. Y funciona bien.

primero, que en masm no he podido hacer el include de irvine32.inc, se supone que es para masm, pero a mi me ha creado conflicto SmallWin.inc que resolvi haciendo el prototipo manualmente.

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4.  
  5.  
  6. include \masm32\include\windows.inc
  7. include \masm32\include\kernel32.inc
  8. include \masm32\include\msvcrt.inc
  9.  
  10. WriteString PROTO
  11.  
  12.  
  13. includelib \masm32\lib\kernel32.lib
  14. includelib \masm32\lib\msvcrt.lib
  15. includelib Irvine32.lib
  16. .data
  17. szMsg db "Hola a todos",0
  18. .code
  19.  
  20. start:
  21.     mov edx, offset szMsg
  22.     call WriteString
  23.     invoke ExitProcess, 0
  24. end start
  25.  
Igual no funciona,  por alguna extraña razon no tiene un handle valido a la consola.

No uso masm, no se si tendra alguna vuelta mas, pero en si, tal cual esta deberia funcionar.

Que extraño, se supone que está orientado a MASM incluso hablan de que los ejemplos son realizados bajo MASM. Te comento tengo: la desventaja que no sé como hacerlo a través de las API'S de Windows pero algo me ayuda el arte de Ingeniería inversa traceando noté en donde se genera el error:


00401F1E  |.  6A 00         PUSH 0                                        ; /pReserved = NULL
00401F20  |.  68 98484000   PUSH serial.00404898                          ; |pWritten = serial.00404898
00401F25  |.  50            PUSH EAX                                      ; |CharsToWrite
00401F26  |.  52            PUSH EDX                                      ; |Buffer
00401F27  |.  FF35 94484000 PUSH DWORD PTR DS:[404894]                    ; |hConsole = NULL
00401F2D  |.  E8 34010000   CALL <JMP.&kernel32.WriteConsoleA>            ; \WriteConsoleA


A mi criterio debería ser pusheado el handle de la consola, es por eso que no puede escribir ya que la call WriteString utiliza la API de windows WriteConsoleA, pero desconozco como se realizaría todo en código de fuente ASM ya que eso estoy estudiando (y de eso trama el libro), se podría sacar algo de provecho con lo comentado?

Saludos y muchas gracias _Enko por tomarte tu tiempo, muchísimas gracias, a ver si te hago la competencia en los crackmes en algunos años luz, Saludos


En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #12 en: 1 Diciembre 2011, 06:26 am »

Es lo que te habia comentado, no le pasa un handle valido a consola.
Lo que me extraña a mi, es que importando la libreria a visual studio si funciona.
Trata reinstalando masm, y mejor aun, reinstala exactamente la misma version que viene con el libro.

pd: no es "arte ingenieria inversa" sino que se llama "depurar mi propio programa"


Saludos.
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #13 en: 1 Diciembre 2011, 07:08 am »

Es lo que te habia comentado, no le pasa un handle valido a consola.
Lo que me extraña a mi, es que importando la libreria a visual studio si funciona.
Trata reinstalando masm, y mejor aun, reinstala exactamente la misma version que viene con el libro.

pd: no es "arte ingenieria inversa" sino que se llama "depurar mi propio programa"


Saludos.

Para mi es entretenido nunca había depurado algo que era mio, siempre depuré lo ajeno

Puede ser útil lo siguiente?

http://kipirvine.com/asm/5th/gettingStarted/index.htm#batch
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #14 en: 1 Diciembre 2011, 19:08 pm »

acabo de probar el codigo del primer post y funciona ok si:

en QEDIT de masm32, pones:
Project>>Console BuildAll

y ahi ya funciona bien.

casualmetne era el mismo error que estaba teniendo al querer usar la msvcrt con masm.
« Última modificación: 1 Diciembre 2011, 19:10 pm por _Enko » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #15 en: 1 Diciembre 2011, 20:32 pm »

acabo de probar el codigo del primer post y funciona ok si:

en QEDIT de masm32, pones:
Project>>Console BuildAll

y ahi ya funciona bien.

casualmetne era el mismo error que estaba teniendo al querer usar la msvcrt con masm.

Nada más que decir, excelente gracias a ti podré seguir el libro al pie de la letra sin ningún problema, de verdad muchísimas gracias, ya veía que mientras me lo leía no iba a poder ejercitarme con los ejercicios que me iban a salir, Muchísimas gracias _Enko :D
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda!]Problema con procedimientos Irvine
« Respuesta #16 en: 1 Diciembre 2011, 20:49 pm »

yo por eso cuando llege a esa parte lo hare con otra libreria :P
ya solo me faltan 20 pag para el capitulo 5 :D
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SQL Server - Procedimientos almacenados y permisos - AYUDA
Bases de Datos
NetStorm 2 7,772 Último mensaje 13 Noviembre 2010, 15:30 pm
por NetStorm
MOVIDO: SQL Server - Procedimientos almacenados y permisos - AYUDA
.NET (C#, VB.NET, ASP)
[D4N93R] 0 1,910 Último mensaje 10 Noviembre 2010, 22:46 pm
por [D4N93R]
[Solucionado]Problemas al enlazar (Irvine) « 1 2 »
ASM
.:UND3R:. 11 12,628 Último mensaje 29 Noviembre 2011, 21:42 pm
por x64core
Problema al obtener estructura de procedimientos en mysql con php
PHP
1mpuls0 0 1,768 Último mensaje 26 Enero 2012, 02:59 am
por 1mpuls0
AYUDA con procedimientos en pascal
Ejercicios
joseanh 0 2,609 Último mensaje 30 Junio 2013, 03:10 am
por joseanh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines