• Lunes 6 de Abril de 2020, 12:54

Mostrar Mensajes

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


Temas - Zirrosis

Páginas: [1]
1
MySQL / Prepared Statements anidados [PHP + MySQL]
« en: Miércoles 14 de Diciembre de 2011, 18:08 »
Buenas a todos!

Miren, quería preguntarles algo que me esta pasando con mi proyecto. Para que tengan una idea de lo que quiero hacer, imaginen el muro de facebook o tuenti, con sus publicaciones y sus comentarios en cada publicación. Lo que estoy haciendo es lees la parte de publicaciones y en la parte de fetch, tengo una función que me busca los comentarios de dicha publicación. Algo así:

Código: PHP
  1. while($stmnt->fetch())
  2. {
  3.       echo busca_comentarios($id);
  4. }

donde la función busca_comentarios vuelve a abrir una conexión a la bd con un prepared statement, hace el select en la tabla adecuada, cierra la conexión y devuelve resultados.

Lo que me está pasando es que para leer unas pocas publicaciones (menos de 20) con sus comentarios, me tarda poco más de 1 segundo, tiempo que creo que es extremadamente alto, dado que de momento hay poco texto en la BD. Alguien tiene alguna solución de como agilizar esto??

PD: En cada subfunción abro una conexión nueva, hago lo que tenga que hacer y luego la cierro. Al hacerlo con un único usuarios está claro que no voy a saturar el servidor MySQL, pero creo que con unos cuantos usuarios (¿mil?) se podría llegar a saturar, no?? Y no es plan de configurar MySQL para que acepte tropecientas conexiones (de echo, por defecto acepta 151 con un máximo de 10000).

Un saludo y muchas gracias  :smartass:

2
JavaScript / Problema JS generado con AJAX
« en: Martes 22 de Marzo de 2011, 11:05 »
Buenas!!

Me está pasando algo realmente curioso. Tengo una pagina en la que seleccionas un tipo de "publicación" y, mediante una petición AJAX, se genera el formulario para dicho tipo de petición (con unas determinadas cajitas de texto, etc.) Lo que me ocurre es que desde dicho formulario generado, no puedo llamar a funciones JavaScript que previamente incluí en la pagina "inicial" (llamada publish.php).

Es decir, en publish.php tengo esto:

Código: Text
  1. <script type="text/javascript" src="Script.js"></script>
  2.  

El problema es que no puedo ejecutar nada que este aqui dentro. lo he intentado todo. Incluso dentro del formulario que transfiero desde AJAX, le coloqué esa misma linea y el comentario del FireBug era que no se podía cargar el código fuente de Script.js  :(

Alguien sabe que puedo hacer???

Básicamente necesito ejecutar JS para poder previsualizar una imagen de un input file antes de mandar el formulario ;).

Saludetes y gracias!!

3
C/C++ / Duda direcciones modo Kernel
« en: Jueves 26 de Febrero de 2009, 11:51 »
Hola, que tal estan??

Miren, tengo una duda. Es algo curioso, estoy intentando programar un manejador de procesos tipo ProcessExplorer, con una parte a modo usuario y otra en modo kernel. Me encontré con un inconveniente al ver que los antivirus y demás programas de seguridad, hookean la SSDT para implantar todo tipo de filtros, por lo que decidí sacar la dirección real de las API's que quiero utilizar desde el disco. Todo esto me funciona, lo que me pasa es que, al crear la función MyOpenFile con la dirección real de ZwOpenFile, al realizar la llamada no me funciona, pero es curioso, no me funciona si le paso los parámetros desde modo usuario a modo kernel, si en el modulo de kernel "harcodeo" la dirección y realizo lo siguiente:

MyOpenFile = (typeZwOpenFile)0x8....;

Si me funciona. El codigo de la función para finalizar el proceso:

Código: C
  1. void KillProc(int Pid)
  2. {
  3.     NTSTATUS status;
  4.     HANDLE hProcess = 0;
  5.    
  6.     CLIENT_ID cid1 ={(HANDLE)Pid, 0};
  7.     OBJECT_ATTRIBUTES attr ={(ULONG)sizeof(OBJECT_ATTRIBUTES),0, NULL, 0, NULL,NULL};
  8.    
  9.     status = MyOpenProcess(&hProcess, PROCESS_TERMINATE, &attr, &cid1);
  10.     DbgPrint("Handle: 0x%p",hProcess);
  11.     if (status == STATUS_SUCCESS)
  12.     {
  13.         status = MyTerminateProcess(hProcess, 0);
  14.         ZwClose(hProcess);
  15.     }
  16. }
  17.  

Y aquí el código de control de IOCTL's:

Código: C
  1. Stack=IoGetCurrentIrpStackLocation(Irp);
  2.  
  3.     switch(Stack->Parameters.DeviceIoControl.IoControlCode)
  4.     {
  5.         case Kill:
  6.             iBuffer = oBuffer = Irp->AssociatedIrp.SystemBuffer;
  7.             if(oBuffer && oBuffer)
  8.             {
  9.                if(Stack->Parameters.DeviceIoControl.InputBufferLength !=0)
  10.                {
  11.                     i = atoi(iBuffer);
  12.                     KillProc(i);
  13.                     s = STATUS_SUCCESS;
  14.                }
  15.             }
  16.             break;
  17.            
  18.         case Terminate:
  19.             iBuffer = oBuffer = Irp->AssociatedIrp.SystemBuffer;
  20.             if(oBuffer && oBuffer)
  21.             {
  22.                if(Stack->Parameters.DeviceIoControl.InputBufferLength !=0)
  23.                {
  24.                     i = atoi(iBuffer);
  25.                     MyTerminateProcess = (typeZwTerminateProcess)i;
  26.                     s = STATUS_SUCCESS;
  27.                }
  28.             }
  29.             break;
  30.         case Open:
  31.             iBuffer = oBuffer = Irp->AssociatedIrp.SystemBuffer;
  32.             if(oBuffer && oBuffer)
  33.             {
  34.                if(Stack->Parameters.DeviceIoControl.InputBufferLength !=0)
  35.                {
  36.                     i = atoi(iBuffer);
  37.                     MyOpenProcess = (typeZwOpenProcess)i;
  38.                     s = STATUS_SUCCESS;
  39.                }
  40.             }
  41.             break;
  42.     }
  43.    
  44.     Irp->IoStatus.Status = STATUS_SUCCESS;
  45.     IoCompleteRequest(Irp, IO_NO_INCREMENT);
  46.     return s;
  47.  

Alguien sabe a que se debe este error??

Saludos  ^_^   :beer:

4
C/C++ / Heap problem (Dll en C y programa en C#)
« en: Viernes 31 de Octubre de 2008, 11:34 »
Estoy teniendo un problema algo raro con C#, creo que nunca me había pasado. El tema es el siguiente:

En C programé una Dll para poder trabajar cómodamente con la API's y hacer trabajos de más bajo nivel. Esta Dll relocalta información y la guarda en una string. Esta string, al terminar el proceso es transferida a mi programa en C# para interpretarla en un Form.

El problema esta que al cerrar el Formulario para cerrar así el programa, me muestra un error sobre _CrtIsValidHeapPointer. La Dll estaba en modo Debug, así que pensé en generarla a modo Release, pero al llamar a la función en C# ya me da error, ni siquiera puedo llamar a la función (en modo Debug todo iba bien hasta que cerraba el programa o volvía a llamar a la función).

La string en la Dll es un puntero a carácter, que lo voy redimendionando con realloc según la información que se tenga que guardar.

Pensé en crear otra función en la Dll para limpiar la memoria, pero me da error al llamarla  :blink:

Espero que alguien me pueda ayudar.

5
C# / Web Service + C# + Autenticación
« en: Miércoles 22 de Octubre de 2008, 10:00 »
Este es el barullo que tengo montado. Desde mi PC estoy tratando de consumir un web service de otra aplicación externa, implementarlo sobre el C# me va bien (con lo de importar recurso web y eso).

Lo que no consigo hacer de ninguna de las maneras es autenticarme en C#. Es un IIS 6.0 y al intentarlo con NetworkCretentials y con CredentialCache.DefaultCredentials me da error.

Alguien ha echo algo parecido??? Por cierto, otra pregunta, en Internet hay muchos manuales que dicen que para consumir un Web Service es necesario compilar una dll para que haga de proxye, y pregunto yo, el entorno no te genera ya automáticamente una clase para ello???

Un Saludo

6
C/C++ / Problemas "extraños" Con Ioctls
« en: Lunes 4 de Febrero de 2008, 15:58 »
Tengo ciertos problemas "curiosos" al pasar datos desde Ring3 a Ring0, e conseguido pasar datos desde una aplicación en Ring3 a Ring0, pero al terminar los datos se me "adieren" ciertos caracteres indeseados. Antes se me añadian caracteres del tipo ]º'... ahora veo que solamente se me añade una n, en fin, esto es lo que me da el DebugView:

Citar
00000000   0.00000000   Cargado   
00000001   3.99884796   Llamada a CreateFile o CloseHandle   
00000002   3.99886322   Buffer: Hola a todosn   
00000003   3.99886751   Longitud: 12   
00000004   3.99887896   Llamada a CreateFile o CloseHandle   
00000005   8.11681557   Saliendo

Y aqui el codigo de la aplicación en Ring3:

Código: Text
  1. #include &#60;windows.h&#62;
  2. #include &#60;stdio.h&#62;
  3. #include &#60;string.h&#62;
  4.  
  5.  
  6. int main(int argc, char* argv[])
  7. {
  8.   DWORD r;
  9.   HANDLE h;
  10.   char s[13] = &#34;Hola a todos&#34;;
  11.  
  12.   printf(&#34;Comunicación con driver by Hendrix&#092;n&#092;n&#34;);
  13.  
  14.   h=CreateFile(&#34;&#092;&#092;&#092;&#092;.&#092;&#092;driver2&#34;, GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
  15.   DeviceIoControl(h, 0x11111111, s,strlen(s), NULL, 0,&r, NULL);
  16.   CloseHandle(h);
  17.  
  18.   return 0;
  19. }
  20.  

Y aqui la funcion que recibe los datos en Ring0:

Código: Text
  1. NTSTATUS Recibir(PDEVICE_OBJECT DeviceObject,PIRP Irp)
  2. {
  3.     NTSTATUS            s=STATUS_SUCCESS;
  4.     PIO_STACK_LOCATION  Stack;
  5.   PVOID              inputBuffer;
  6.   ULONG              inputBufferLength;
  7.   ULONG              ioControlCode;
  8.   ANSI_STRING        strf;
  9.  
  10.  
  11.     Stack=IoGetCurrentIrpStackLocation(Irp);
  12.   __try
  13.     {
  14.     inputBuffer = Irp-&#62;AssociatedIrp.SystemBuffer;
  15.     inputBufferLength = Stack-&#62;Parameters.DeviceIoControl.InputBufferLength;
  16.     ioControlCode = Stack-&#62;Parameters.DeviceIoControl.IoControlCode;
  17.  
  18.     DbgPrint(&#34;Buffer: %s&#34;, inputBuffer);
  19.     DbgPrint(&#34;Longitud: %d&#34;, inputBufferLength);
  20.   }
  21.  
  22.   __except(EXCEPTION_EXECUTE_HANDLER)
  23.    {
  24.     DbgPrint(&#34;Exception&#34;);
  25.   }
  26.     Irp-&#62;IoStatus.Status = STATUS_SUCCESS;
  27.     Irp-&#62;IoStatus.Information = 0;
  28.     IoCompleteRequest(Irp, IO_NO_INCREMENT);
  29.     return s;    
  30. }
  31.  

Alguien sabe poque se me adieren caracteres????

7
C/C++ / Problema Hookeando Zwdeletefile
« en: Miércoles 23 de Enero de 2008, 15:40 »
Tengo un problema hookeando la ZwDeleteFile, e escrito un modulo de kernel basandome en ejemplos que encontre por la red y el codigo me hookea bien, ya que verificandolo con un "visor de SSDT" veo que si me hookea la dirección correctamente. El problema es que cuando llamo a la DeleteFile desde Ring3 no se llama a mi función, y no encuentro explicacion a eso. :blink:

La direcciónes me las da correctamente, y se hookea bien, pero a la hora de llamar a DeleteFile nunca aparece el emnsage de Me llaman por la pantalla del DebugView....alguna idea???  :unsure:

Un Saludo.

EI: saco el codigo, no es necesario y no quiero que prolifere.

8
C/C++ / Packer En C/c++
« en: Domingo 8 de Julio de 2007, 00:14 »
La idea es:

Extraer en memoria un archivo "enpaquetado" y hacerlo correr en memoria, crear un handle o un thread hacia ese ejecutable en memoria y ejecutarlo desde hay.

La pregunat es:

Se tiene que reajustar la RVA para eso??? ya que en C# se puede ahcer eso pero si el ejecutable usa DLL's hay errores (supongo que es porque la IAT estara mal ya que esta en posiciones de memoria distintas, y creo que solamente reparando la RVA (o la VA, no se) se repararia la IAT,  :( )

Alguien sabe algo de esto???

PD: Al handle o al thread se lo tendria que pasar al Entry point del ejecutable en memoria, para evitar pillar datos que no nos sirven...

Please, guienme, ya que no se si estoy en lo correcto.  :(

9
C# / Punteros Y Direcciones
« en: Miércoles 20 de Junio de 2007, 22:29 »
Bien, mi proposito es llamar a un messagebox a través de la direccion a una string, por ejemplo (en pseudocodigo):

Código: Text
  1. variable var = &#34;Hola mundo&#34;
  2. puntero Punt apunta a la direccion [B]en memoria[/B] de var
  3. llamamos a la API messagebox y le pasamos Punt
  4.  

Tienen alguna idea???

En la MSDN vi que con el simbolo & se apunta a la dirección de lo que se esta apuntando, pero no me funciona, hago esto:

Código: Text
  1. uint t;
  2.  
  3. t = &a;
  4.  

Pero no me funciona, me dice que no se puede obtener la direccion de una string... &lt;_&lt;  :(

10
Visual Basic 6.0 e inferiores / Elementos Mas Repetidos
« en: Domingo 6 de Mayo de 2007, 20:15 »
Bueno, quiero hacer un metodo de compresion en VB el cual haga lo siguiente:

De una cadena de X valores, mirar los elementos que mas se repiten uno al lado de otros y substituirlos por el valor de repeticiones y solamente un caracter de esos repetidos.

Supongamos que tengo esto:

cadena = 1758955555557894235461231

quiero que me quede este resultado:

17589,7x5,7894235461231

Evidentemente, si solo se repite 2 veces no preciso que se haga esa substitucion, ya que ocupa mas el modo comprimido que sin comprimir...xDD

Bueno, solamente es eso, se les ocurre algun metodo para poder hacerlo???

Un Saludo.

11
C# / Simular Variable Global
« en: Domingo 15 de Abril de 2007, 18:38 »
Lo que pretendo hacer es lo siguiente (relacionado con el post de array de propiedades).

Mi programa lee un archivo, y tengo un procedimiento que lee linea a linea, y en este cuenta el numero de empleados que hay, luego, mas adelante, otra funcion se encarga de generar el array bidimensional con los numeros adecuados de empleados....e aqui el problema, como hago para guardar ese numero en una variable global y poderlo leer en todas las funciones de mi programa???

Habia pensado en que en cada funcion llamara a la funcion de recuento y que retornara el numero de empleados, pero esto es gastar bastante memoria, mirando cada vez el numero de empleados, y otro inconveniente, pretendo, aparte de guardar el numero de empleados, guardar informacion, y leerla desde otra funcion, si existieran variables globales no habria problema, haria un array global y listo, pero no hay variables globales.... :(  :(

Un Saludo

12
C# / Array Con Parametros
« en: Viernes 13 de Abril de 2007, 23:24 »
Bueno, estoy ahciendo un proyecto en C# y quiero tenerlo todo bien ordenado, asi que pense en hacer un array y en este ordenar valores segun propiedades, por ejemplo, tengo el objeto sujeto, que puede tener 3 parametros, altura, edad y peso, y pretendo hacer un array de sujetos, al estilo de:

subeto(n).alutra = 1.5
sujeto(n).peso = 45
sujeto(n).edad = 11

Y recorrerlo con un for para que se me lea todo...alguien me puede dar algo de codigo??? porque como ven, tengo mas o menos estructurado lo que pretendo hacer...

Un Saludo

13
Visual Basic 6.0 e inferiores / Ordenacion De Datos
« en: Domingo 18 de Marzo de 2007, 19:24 »
Bueno, lo que quiero hacer es coger un texto, y a este texto dividirlo en grupos de 2 caracteres, luego mirar sus repeticiones y ordenar de mayor nº de repeticiones a menor grupo de repeticiones.

Lo que llevo echo hasta ahora es esto:

Tengo en un listbox listado el grupo de 2 caracteres + su numero de repeticiones, por ejemplo:

ab - 2
cp - 5
bn - 1

Lo ke me queda por ahcer es ordenar estos datos por numero de repeticion.

Habia pensado en hacerlo por burbuja, pero es algo lioso, ya que tengo aproximadamente 100 datos dentro del listbox. Ademas, luego de tenerlo ordenado tengo que tener los 2 caracteres visibles, tendria que quedar asi:

cp - 5
ab - 2
bn - 1

Si alguien sabe como hacerlo se lo agradeceria.

Un Saludo.

14
ASM (Ensamblador) / Beep En 16 Bits
« en: Miércoles 27 de Diciembre de 2006, 19:07 »
Bueno, mi intencion es con el comando Debug hacer sonar el Beep, para ello necesitaria un codigo para 16 Bits para hacer mi proposito, todos los que e encontrado son para 32, y no me funcionan.

Gracias

15
Visual Basic 6.0 e inferiores / Sacar El Idioma Del Pc
« en: Viernes 1 de Diciembre de 2006, 23:35 »
Alguen sabe con que apis se puede sacar el idioma del PC, que que la plataforma sobre la que corre si se, es mas, es bastante sencillo, en cambio esto aun no lo e visto nunca, pero supongo que se puede.

Salu2

16
Visual Basic 6.0 e inferiores / Sacar Direccion Del Entry Point
« en: Miércoles 29 de Noviembre de 2006, 19:39 »
Bueno, estoy en desarrollo de una aplicacion, a la cual le quiero incorporar la notificación de la direccion del Entry Point de un programa, ya se que el Entry Point esta en la cabecera, pero en VB no se sacarla, quiero que me de de resultado lo mismo que da el OllyDg (es decir, estilo esto: 750086h).

Les agradeceria que me orientarais un poquito sobre que APIS y Constantes se usan.

17
Pascal / Buscar Dentro De Strings
« en: Jueves 5 de Octubre de 2006, 17:53 »
Bueno, lo que pretendo hacer es un buscador de palabras dentro de un archivo....kiero ke extraiga linea a linea y dentro de esta linea buske alguna palabra...lo de las lineas lo se hacer...lo ke no se hacer es buscar dentro de una string....alguien me ayuda??

Un ejemplo seria esto:

Supongamos ke kiero buscar la palabra Punk aki dentro:

Eskorbuto, es y sera para siemrpe uno de los mejores grupos punk de la Historia

No se ke komando se usa para buskar dentro de strings....en VB es facilisimo...en Pascal no se.... :(  :(

18
Perl / Empaquetar Modulos De Perl
« en: Martes 3 de Octubre de 2006, 21:57 »
Para ke otro usuario ek no tenga el eprl instalado se tienen ke psasar los modulos del perl asi komo el interprete, no??? bien, esos modulos donde se guardan???

19
Visual Basic 6.0 e inferiores / Enviar Mensage A Ventana
« en: Jueves 24 de Agosto de 2006, 19:19 »
Hola, ke tal estan??? bien, mi pregunta es la siguiente: Como envio un mensage a cierta ventana???no kiero hacer un simple sendkeys porke esto no me vale, kiero hacer una aplicaccion para consola, y kiero ke mi programa y la consola se interkomuniken, por ejemplo, kuando ejecutamos en el MS-dos el comando help, aparecen comandos con su explicacion, pues mi intencion es poder enviar esos mensages, lo prove kon sendmessage y no me funciono, y ya no se ke mas hacer, si alguien me pudiera ayudar le estaria agradecido.

20
Visual Basic 6.0 e inferiores / Pasar Bmp A Binario
« en: Miércoles 16 de Agosto de 2006, 12:23 »
Alguien me puede ayudar en esto??? estoy intentando pasar una imagen .bmp a codigo binario (1 y 0's), o simplemente modificar algunos pixels, creo ke para esto tendria ke usar alguna api o algun control, en elguille vi el kontrol graphic (o algo asi), creo ke me podria ayudar, no???

Bueno, espero su ayuda. ;)

21
Pascal / Sockets En Pascal
« en: Miércoles 16 de Agosto de 2006, 12:19 »
Bueno, este es mi primer post aqui, asi ke intentare explikarme bien... ;)  ;)

Alguien me podria ayudar con una conexion en Pascal entre un Cliente/Servidor (los 2 en Pascal). Buske por internet y enkontre una pagina kon un kodigo (pagina en ingles), pero ese codigo ya no funcionaba (no se porke, tenia varios errores).

Otra pregunta, como ago la ventana del Pascal invisible???(Tengo este lenguaje algo oxidado, ya es hora de kitarle el oxido...xD xD xD).

Salu2 y Gracias.

Páginas: [1]