Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - naderST

#1
Programación C/C++ / Duda GetProcAddress
5 Marzo 2013, 02:41 AM
Buenas a todos, he visto varios códigos donde hacen algo como esto:


GetProcAddress(GetModuleHandle("user32.dll"), "MessageBoxA");


Entiendo que obtiene la dirección de memoria de la función MessageBoxA, pero lo que no logro entender es cómo es que es la misma dirección para todos los procesos? No se si me explico bien, pero no entiendo como funciona esto.
#2
Tengo una clase donde uno de sus métodos lanza una excepción y estuve debugueando y efectivamente se ejecuta la parte del throw, pero donde tengo el try... catch no está capturando la excepción y crashea la app. A qué se puede deber esto?
#3
Tengo dos funciones que retornan entero, una llamada prueba y la otra prueba2 dentro de prueba llamo a prueba2 y sin poner return en prueba me devuelve el valor de retorno de prueba2. No se si me explique bien pero aquí les dejo el código:

#include <stdio.h>

int prueba2(){
return 11321;
}

int prueba(){
prueba2();
}

int main(void){
printf("%d\n", prueba()); // Imprime 11321
return 0;
}


Mi pregunta es, por que pasa esto?
#4
Buenas a todos en la universidad en la clase de arreglos y apuntadores el profesor nos dijo que están ÍNTIMAMENTE relacionados nos dio este código y nos preguntó que cómo era posible que compilara y funcionara, es decir que dijéramos el por que...


#include <stdio.h>

int arreglo[] = { 1, 2,3, 4, 5};

int main()
{
    printf("%d\n", arreglo[3]);
    printf("%d\n", 3[arreglo]);

    return 0;
}


Bueno lo que sé es que el operador [] se resuelve así:

elem1[elem2]

*(elem1 + elem2)

El no va a sumar 3 a la dirección de memoria del arreglo sino que va a sumar (3*sizeof(tipo_arreglo)), pero la pregunta es Por qué esto es posible?
#5
Buenas a todos ayer estuve viendo en el foro temas sobre inyección DLL, pero me puse a probar un código que encontré en el foro y no me funcionó. Aquí se los dejo si ven el problema háganme saber:

Código (cpp) [Seleccionar]


void inyectar(const char * dll, const char * proceso){
   DWORD  pId = pID(proceso);
   HANDLE hProceso = OpenProcess(PROCESS_ALL_ACCESS, false, pId);

   printf("DLL a inyectar: %s\nProceso: %d-%s\n", dll, pId,proceso);

   if(hProceso != NULL){
       LPVOID nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");

       if(nLoadLibrary == NULL)
           printf("LoadLibrary error\n.");

       LPVOID remoto = VirtualAllocEx(hProceso, NULL, strlen(dll), MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);

       if(remoto == NULL)
           printf("Error reservando la memoria.\n");

       WriteProcessMemory(hProceso, (LPVOID)remoto, dll, strlen(dll), NULL);

       CreateRemoteThread(hProceso, NULL, NULL, (LPTHREAD_START_ROUTINE)nLoadLibrary, (LPVOID)remoto, NULL, NULL);
       CloseHandle(hProceso);
   }
}
#6
Programación C/C++ / Keep Alive Sockets
21 Julio 2011, 04:26 AM
Buenas a todos, tengo un problema con sockets en windows. Me pasa lo siguiente tengo una única conexión de sockets y tengo un hilo que comprueba que la conexión este activa enviando un mensaje cada 2.5 segundos, el problema resulta que al usar send() en Windows 7 cuando la conexión no esta activa en vez de devolverme SOCKET_ERROR el programa crashea.

Código (cpp) [Seleccionar]

DWORD WINAPI keepalive(LPVOID){
   char KEEP_ALIVE = '\0';

   while(1){
      if(send(cnn, &KEEP_ALIVE, sizeof(char), 0) == SOCKET_ERROR){
           TerminateThread(hiloRecibir, 0);
           hiloCnn = CreateThread(NULL, 0, esperarCnn, 0, 0, 0);

           printf("WINSOCK: Desconectado.\n");

           ExitThread(0);
       }

       Sleep(2500);
   }
}


EDIT:

En Windows XP funciona perfectamente.
#7
No se si es el titulo correcto pero mi duda es la siguiente tengo este código


#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;

    for(i=1;i<=2;i++){
        char * buffer = (char*)malloc(20);
        printf("%d\n", &buffer);
    }

    return 0;
}


Quiero hacer que cada vez que se recorra el for buffer se cree en una diferente posición en la memoria.

#8
Programación C/C++ / MySQL, C y CodeBlocks
17 Mayo 2011, 16:07 PM
Bueno tengo unas dudas acerca de esto, descargue el conector de la página de MySQL pero tengo un problema tratando de generar el archivo libmysql.a necesito generar este archivo para no tener que incluir la dll libmysql.dll en la carpeta de mi ejecutable. ¿Alguna idea?

Cuento con estos archivos:
-libmysql.dll
-libmysql.lib

Edit:
Probé usando herramientas como reimp y dlltool logre generar un libmysql.a pero vacío (0 KB), no se si hice algo mal pero he buscado y no he encontrado nada que me haya podido resolver mi problema.
#9
Desarrollo Web / Evento onsubmit javascript IE 8
8 Febrero 2010, 19:48 PM
Buenas tenía problemas con el evento onsubmit de los formularios con IE 8 lo que pasa es lo siguiente tengo un buscador que quiero que trabaje con ajax osea que no recargue la página, lo hace perfectamente en Chrome y FF pero en IE 8 no funciona recarga la página como si se enviara normalmente. Aquí esta el código:

Buscador
Código (html4strict) [Seleccionar]
<form name="buscar_form" id="buscar_form" onsubmit="buscar(); return false;">


Function buscar()
Código (javascript) [Seleccionar]
function buscar(){
   var c = $("#cadena").val();
   var cd = $("#ciudad").val();
   var r = $("#categorias");
   
   if(($.trim(c) == "") || ($.trim(cd) == "") || ($.trim(c) == "Nombre de la empresa o servicio")){
      alert('Debes colocar una empresa o servicio a buscar.');
   } else {
      r.html("<br /><p align=\"center\"><img src=\"images/cargando.gif\" /></p>");
      $.ajax({ type: "GET", url: "nav/buscar.php?cadena=" + c + "&ciudad=" + cd, cache: false, data: "", success: function(response){ r.html(response); $("#cadena").val("Nombre de la empresa o servicio"); $("#ciudad").val("Selecciona una ciudad"); } });
   }
}


No se sí me expliqué bien pero estoy apunto de poner un botón con un onnlick="buscar();" y dejarlo así
#10
Bueno les comento que me instale windows 7 64-bits y no he podido instalar el visual basic fijense el error que me tira:

http://img195.imageshack.us/img195/1824/wtfavs.png

Yo habia leido que si funcionaba en windows 7 pero supongo que como este es 64-bits es diferente o tengo que hcer algo xD
#11
PHP / Error muy raro
5 Julio 2009, 02:00 AM
Buenas hoy me encuentre con un error muy extraño...

Código (php) [Seleccionar]

<?php
$dbhost 
"localhost";
$dbuser "root";
$dbpass "****";
$dbname "test";

$conn mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db($dbname$conn);
?>


Ningun problema hasta ahi xDDD pero a la hora de probar me encuentro con esto:

Warning: mysql_connect() [function.mysql-connect]: [2002] Se produjo un error durante el intento de conexión ya que la par (trying to connect via tcp://localhost:3306) in D:\WWW\pruebas\testingarray.php on line 7

Warning: mysql_connect() [function.mysql-connect]: Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. in D:\WWW\pruebas\testingarray.php on line 7

Fatal error: Maximum execution time of 60 seconds exceeded in D:\WWW\pruebas\testingarray.php on line 7


Lo mas raroo que pruebo con otro archivo que esta en otra carpeta y funciona bien O.o

EDIT:

Uso el AppServ 2.6.0 en Windows 7 64-bits

EDIT NUEVAMENTE XD:

Solucione el error instalando XAMPP 1.7.1 no me gusta mucho XAMPP pero bueno si asi me funciona asi me quedo... quizas con la 2.5.9 de AppServ serviria seria cuestion de probar.
#12
Buenas queria saber si era posible enviar SMS con VB6 con un Blackberry Curve 8900 conectado via USB
#13
PHP / Ayuda con BBCode
15 Marzo 2009, 02:47 AM
Bueno estaba intentando implementar los bbcode pero a la hora de hacer lo de la etiqueta "code" me hago un desastre porque si ponen dentro de la etiqueta "code" la etiqueta de letra negrita "b" se pone negrita el código dentro de la etiqueta "code" igual con los links y demas... y eso no es bueno xD. Aca les dejo el codigo que uso:

Código (php) [Seleccionar]

<?php
function bbcode($str){
$str nl2br($str);
$str preg_replace('/\[b\](.*?)\[\/b\]/is''<b>$1</b>'$str); 
$str preg_replace('/\[i\](.*?)\[\/i\]/is''<i>$1</i>'$str);
$str preg_replace('/\[u\](.*?)\[\/u\]/is''<u>$1</u>'$str);
$str preg_replace('/\[url\](.*?)\[\/url\]/is''<a href="$1" target="_blank">$1</a>'$str);
$str preg_replace('/\[url\=(.*?)\](.*?)\[\/url\]/is''<a href="$1" target="_blank">$2</a>'$str);
$str preg_replace('/\[img\](.*?)\[\/img\]/is''<img src="$1" border="0" />'$str);

$str preg_replace('#\[code\](.*)\[/code\]#ise''\'<b>Código:</b><br /><div class="codigo">\'.highlight_string(stripslashes(str_replace(\'<br />\', \'\', \'$1\')), true).\'</div>\''$str);
return 
$str;
}
?>

#14
PHP / Configuracion del php.ini
17 Agosto 2008, 03:25 AM
Buenas a todos queria saber como podria aplicar una configuracion de mi php.ini solo a ciertas carpetas, por ejemplo: que no se puedan conectar a la DB los archivos que esten en la carpeta C:\WebServer\user01 pero que los archivos que esten en la carpeta C:\WebServer\user02 si se puedan conectar no se si me explique bien espero respuestas ^^.
#15
PHP / Ayuda BBCode
14 Agosto 2008, 03:34 AM
Buenas estoy haciendo una funcion para implementar bbcode, esto es lo que llevo:

Código (php) [Seleccionar]

<?php
function bbcode($str){
$str htmlentities($str);
$str str_replace("<""&lt;"$str);
$str str_replace(">""&gt;"$str);
$str preg_replace('/\[b\](.*?)\[\/b\]/is''<b>$1</b>'$str); 
$str preg_replace('/\[i\](.*?)\[\/i\]/is''<i>$1</i>'$str);
$str preg_replace('/\[u\](.*?)\[\/u\]/is''<u>$1</u>'$str);
$str preg_replace('/\[url\](.*?)\[\/url\]/is''<a href="$1" target="_blank">$1</a>'$str);
$str preg_replace('/\[url\=(.*?)\](.*?)\[\/url\]/is''<a href="$1" target="_blank">$2</a>'$str);
$str preg_replace('/\[img\](.*?)\[\/img\]/is''<div id="imagen"><img src="$1" border="0" /></div>'$str);
$str preg_replace('/\[quote\=(.*?)\](.*?)\[\/quote\]/is''<b>$1 dijo:</b><br /><div id="codigo"><code>$2</code></div>'$str);
$str preg_replace('/\[color\=(.*?)\](.*?)\[\/color\]/is''<span style="color:$1">$2</span>'$str);
$str preg_replace('/\[size\=(.*?)\](.*?)\[\/size\]/is''<font size="$1">$2</font>'$str);
$str preg_replace('/\[list\](.*?)\[\/list\]/is''<ul>$1</ul>'$str);
$str preg_replace('/\[li\](.*?)\[\/li\]/is''<li>$1</li>'$str);
$str str_replace("<ul><br />""<ul>"$str);
$str str_replace("</li><br />""</li>"$str);
$str preg_replace('/\[code\](.*?)\[\/code\]/is''<b>Código:</b><br /><div id="codigo"><code>$1</code></div>'$str);
$str nl2br($str);
return $str;

}
?>



La cuestion es en la etiqueta code quiero que si se pone dentro de ella la etiqueta [ b ] no se ponga en negrita ni nada, no se si me explico.

Gracias.
#16
Hola a todos tenia esa duda si hay alguna api para mostrar la RAM disponible y el total de RAM que hay en la PC?
#17
Buenas quería saber como podría hacer esto?
#18
Bueno hoy queria reproducir un mp3 con el api mciExecute y estaba intentado de esta manera:


mciExecute("Play C:\FuckYou.mp3")


Ahora fijense en lo que pasa

http://www.imagenhost.com/img/97bc561fb0.JPG
#19
Bueno mi pregunta era como hacer click en un link con el control webbrowser osea hacer un click desde codigo  :P
#20
Buenas tengo una pregunta como hago para mostrar la hora del sistema asi:

03:00 p.m.

y no asi:

15:30

Probe con Format() asi:


Format(Time, "h:mm:ss tt")


pero no me sirvio.
#21
Hola, hice este programa que bueno como su nombre lo dice "MSN Spammer" sirve para hacer spam en el MSN Messenger.

Link:
http://rapidshare.com/files/94264342/MSN_Spammer_2008.zip.html

Imagen:
#22
Bueno estaba probando para cambiar el nombre del jugador en el CS (Counter Strike) 1.6 y bueno lo logre con el CE (Cheat Engine) y quise hacerlo con VB6 hice lo siguiente pero no me da resultado pareciera que no escribe...


Option Explicit

Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Private Declare Function GetAsyncKeyState Lib "user32.dll" ( _
        ByVal vKey As Long) As Integer

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long

Private Declare Function GetWindowThreadProcessId Lib "user32.dll" ( _
        ByVal hwnd As Long, _
        ByRef lpdwProcessId As Long) As Long
       
Private Declare Function OpenProcess Lib "kernel32.dll" ( _
        ByVal dwDesiredAccess As Long, _
        ByVal bInheritHandle As Long, _
        ByVal dwProcessId As Long) As Long
       
Private Declare Function WriteProcessMemory Lib "kernel32.dll" ( _
        ByVal hProcess As Long, _
        ByRef lpBaseAddress As Any, _
        ByRef lpBuffer As Any, _
        ByVal nSize As Long, _
        ByRef lpNumberOfBytesWritten As Long) As Long

Private Declare Function CloseHandle Lib "kernel32.dll" ( _
        ByVal hObject As Long) As Long
       
Private Sub CambiarNombre(Nombre As String)
Dim wHandle As Long
Dim pId     As Long
Dim pHandle As Long

wHandle = FindWindow(vbNullString, "Counter-Strike")

If wHandle = 0 Then Exit Sub

GetWindowThreadProcessId wHandle, pId

pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pId)

If pHandle = 0 Then Exit Sub

WriteProcessMemory pHandle, &H2F4DC28, StrPtr(Nombre), LenB(Nombre), 0&

CloseHandle pHandle
End Sub

Private Sub Form_Load()
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF5) Then CambiarNombre ("NADER")
End Sub