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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)  (Leído 5,459 veces)
el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« Respuesta #10 en: 19 Marzo 2012, 02:22 am »

Es raro entonces es como decir que la funcion esta mal porque el RETN forma parte de ella  :silbar:
pues los POP por algo deben estar no seguramente usaba registros o variables locales...
cuanto era el valor de RETN?

Ninguno. es un RETN solo. Ademas, el IDA decia bp-based frame... por ende, es CDECL.
Era un poco ambiguo para mi (primera vez que me pasa esto, sin que el VB diga lo de "Convencion de llamadas no valido").

En fin, ahora resta descubrir la declaracion de una funcion que exporta, pero no esta declarada en el codigo de C#.


En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« Respuesta #11 en: 19 Marzo 2012, 02:25 am »

Ninguno. es un RETN solo. Ademas, el IDA decia bp-based frame... por ende, es CDECL.
Era un poco ambiguo para mi (primera vez que me pasa esto, sin que el VB diga lo de "Convencion de llamadas no valido").

En fin, ahora resta descubrir la declaracion de una funcion que exporta, pero no esta declarada en el codigo de C#.

ningun valor en el RETN? se supone que debe de haber un RETN 04h
que es el puntero al array... sin poder ver codigo ni nada a lo mucho que llega uno es adivinando :P
prueba modificando a RETN 04h... Esperemos a que dice Karcrack :)
muestra el desemsamblado


En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« Respuesta #12 en: 19 Marzo 2012, 02:50 am »

ningun valor en el RETN? se supone que debe de haber un RETN 04h
que es el puntero al array... sin poder ver codigo ni nada a lo mucho que llega uno es adivinando :P
prueba modificando a RETN 04h... Esperemos a que dice Karcrack :)
muestra el desemsamblado

Nop. Como es CDECL, el RETN no tiene nada... es decir, si uno prepara el stack previo a la llamada, uno mismo debe hacer pop por cada parametro. Entonces la DLL no los quita del stack al volver...

En fin, el desensamblado (parcial, solo de la funcion que no se si estoy pasandole bien los argumentos) esta aqui:
http://pastebin.com/yb5Jeu7y

No esta entero. Pero es igual a la funcion por la cual cree el post.

La dll por si te interesa, esta aca
http://www.mediafire.com/?c8movap40k83qra

Si no estan instalados los drivers, va a tirar error al llamar a cualquier funcion, ya que no se carga siquiera.
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« Respuesta #13 en: 19 Marzo 2012, 09:44 am »

Entonces no es stdcall se supone que si era stdcall, Bueno revisando un poco la funcion yo encontre
el codigo siguiente, se supone que es llamar a la funcion ReadDataFromTPM ...
El Codigo del pastebin que subiste es el de la funcion ReadCertFromTPM...

Código:
X_100033F0:   push ebp
X_100033F1:   mov ebp, esp
X_100033F3:   push -0x1
X_100033F5:   push 0x1000c3b8
X_100033FA:   mov eax, fs:[0x0]
X_10003400:   push eax
X_10003401:   sub esp, 0x8
X_10003404:   push ebx
X_10003405:   push esi
X_10003406:   push edi
X_10003407:   mov eax, [0x1001001c]
X_1000340C:   xor eax, ebp
X_1000340E:   push eax
X_1000340F:   lea eax, [ebp-0xc]
X_10003412:   mov fs:[0x0], eax
X_10003418:   mov [ebp-0x10], esp
X_1000341B:   mov esi, [ebp+0x8]
X_1000341E:   xor ebx, ebx
X_10003420:   cmp esi, ebx
X_10003422:   jz 0x10003463
X_10003424:   push 0x18
X_10003426:   mov [ebp-0x4], ebx
X_10003429:   call 0x100036a0
X_1000342E:   add esp, 0x4
X_10003431:   cmp eax, ebx
X_10003433:   mov [ebp-0x14], eax
X_10003436:   jz 0x10003463
X_10003438:   lea ecx, [ebp+0xb]
X_1000343B:   call 0x10002470
X_10003440:   lea eax, [ebp-0x14]
X_10003443:   push eax
X_10003444:   push 0x18
X_10003446:   push 0x3
X_10003448:   lea ecx, [ebp+0xb]
X_1000344B:   mov byte [ebp-0x4], 0x1
X_1000344F:   call 0x100026e0
X_10003454:   cmp eax, ebx
X_10003456:   mov [ebp-0x4], bl
X_10003459:   jz 0x10003478
X_1000345B:   lea ecx, [ebp+0xb]
X_1000345E:   call 0x10002480
X_10003463:   or eax, -0x1
X_10003466:   mov ecx, [ebp-0xc]
X_10003469:   mov fs:[0x0], ecx
X_10003470:   pop ecx
X_10003471:   pop edi
X_10003472:   pop esi
X_10003473:   pop ebx
X_10003474:   mov esp, ebp
X_10003476:   pop ebp
X_10003477:   ret

el parametro se recupera aquí:
Código:
X_1000341B:   mov esi, [ebp+0x8]
sino me equivoco :P
se tendria que depurar para ver adonde se pierde la pila

ED: bueno igual ahora que releo los post  :xD entonces el problema era la convecion  
« Última modificación: 19 Marzo 2012, 09:56 am por RHL » En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: [PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« Respuesta #14 en: 19 Marzo 2012, 14:47 pm »

si, con cobein habiamos visteo que al final era cdecl por eso mismo.  es decir que con ReadDataFromTPM ya estamos listos (y funcionando).

Pero en el pastebin esta OTRA funcion, que es una que NO se cuantos parametros tiene. Teoricamente es 1 solo, un puntero a un array, pero no le cambia ningun byte. Estamos hablando de ReadCertFromTPM.

saludos
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta convertir « 1 2 »
Programación Visual Basic
thearing 12 4,750 Último mensaje 19 Marzo 2011, 04:31 am
por raul338
Pregunta tonta sobre declaracion... « 1 2 »
.NET (C#, VB.NET, ASP)
Edu 13 4,519 Último mensaje 20 Marzo 2011, 23:05 pm
por Edu
¿Atan() Siempre devuelve 0? (posible problema con la declaración de las varibles
Programación C/C++
carlmycol 1 1,008 Último mensaje 4 Abril 2013, 17:49 pm
por isseu
Problema con orden de declaración de 2 clases
Programación C/C++
xRodak 1 580 Último mensaje 16 Enero 2014, 07:07 am
por Beakman
(Consulta) - Declaracion de punteros en Null
Programación C/C++
palacio29 2 519 Último mensaje 16 Mayo 2019, 09:29 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines