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ú

Mensajes - ApOkAlizE

#41
Cita de: MCKSys Argentina en 12 Diciembre 2011, 16:51 PM
Si, es difícil. Te recomiendo usar uno ya existente. En SourceForge encontraras algunos...

Utilizando Ingeniería Inversa, se analiza el programa (en el caso de C++, instrucciones ASM) a fin de obtener el algoritmo usado.

Por lo que la respuesta es si, si se puede obtener el algoritmo.

Saludos!

pero si desensamblandolo se puede obtener el algoritmo ¿como se hace por ejemplo para que un sistema de cifrado no se pueda ver? por ejemplo los registros cifrados por el propio sistema operativo o librerias que encriptan para un programa tipo chat ¿como es que dicen que no se puede o es muy difícil descifrar porque si solo se trata de desensamblar...?
#42
Pues me gustaria a ver si teneis por ahí algun tutorial de como crear nuestros propios desensambladores aunque entiendo que crear un desensamblador debe ser una tarea difícil.
De paso queria preguntar, si por ejemplo si tu creas un programa en C++ y creas un sistema de cifrado, o sea que hay un algoritmo... si al desensamblar se puede ver el algoritmo, lo pregunto porque por ejemplo entonces si se pudieraa ver no serviria de nada que por ejemplo un programa, por ejemplo un cliente de chat encriptara las conversaciones, ya que luego desensamblando el .exe podriamos ver como se cifra todo... ¿alguien sabe si se podría ver?
Muchas gracias de antemano.
#43
Bueno estoy intentando hacer una inyección DLL y en VC++ tengo esto.

#include <windows.h>
#include <Tlhelp32.h>
#include "iostream"
using namespace std;
void main()
{
HANDLE proceso;
LPVOID RemoteString;
LPVOID nLoadLibrary;
int pid;
HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 procinfo = { sizeof(PROCESSENTRY32) };
while(Process32Next(handle, &procinfo))
{
if(!strcmp("procinfo.szExeFile", "calc.exe"))

{
CloseHandle(handle);
pid = procinfo.th32ProcessID;
cout << pid << endl;
system("pause");
}
}
CloseHandle(handle);
proceso = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA");
RemoteString = (LPVOID)VirtualAllocEx(proceso,NULL,strlen("C:\\Users\\Ramonet\\Documents\\dll.dll"),MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
WriteProcessMemory(proceso,(LPVOID)RemoteString,"C:\\Users\\Ramonet\\Documents\\dll.dll",strlen("C:\\Users\\Ramonet\\Documents\\dll.dll"),NULL);
CreateRemoteThread(proceso,NULL,NULL,(LPTHREAD_START_ROUTINE)nLoadLibrary,(LPVOID)RemoteString,NULL,NULL);
CloseHandle(proceso);
}

Y en la dll que esta situada en Documents esto:


#include <windows.h>
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
MessageBox (0, "aaa", "aa", 0);
}
return TRUE;
}

Y ni ejecutando el exe como administrador consigo inyectar a la calculadora (que esta ejecutandose en ese momento) porque a ver ¿ahora al ejecutar la calculadora de nuevo tendria que aparecer el Messagebox verdad?
Estoy muy perdido con este tema.
gracias.
#44
Bueno ya he encotnrado el problema de esto que me sucede, me he fijado que los Windows 7 se congelan por estar conectados en adaptador puente... si cambiais de adaptador puente a NAT, por ejemplo, veréis que ya no se congelan.
#45
Pues me he encontrado muchas veces que alguna funcion devuelve un int i se trata de pasarlo a char pero sin variar su contenido, por ejemplo al hacer esto.
int x;
x=system(dir");
char y[300];
*y=(char)x;
FILE * F;
F=fopen("prueva.txt","w");
fputs(y,F);
close(F);
pues en casos como este system te devuelve un int y quieres pasarlo a char pero si lo pasas a char lo necesario esque el valor quedara intacto cosa que no hace, no me digais de usar otra alternativa porque yo no quiero que me den el pez, yo quiero aprender a pescar.
¿Sabeis algun metodo para convertir sin que varie el valor?
gracias.
#46
Bueno pues hago este post por si alguien se encuentra con este problema. Lo que me sucede es que uso Virtualbox en mi Ubuntu, y con Windows 7 como maquina virtual, en este PC (en otros no me pasa) los Windows 7 funcionan bien pero algun dia se queda congelada la maquina o sea que queda todo bloqueado, la maquina virtual queda estatica no puedes interactuar con ella e incluso recuperandola con snapshots(capturas) continua congelandose cada vez que la enciendes, y claro no es solo tener que volver a crearla, sinó que yo las uso para programar en C++, java..., y si estoy haciendo un proyecto y algun dia después de terminar de trabajar en el proyecto me olbido de guardarme una copia del proyecto en el pendrive y luego me pasa esto que se me congela perdería todo lo que he hecho en una tarde(yo cuando me pongo a programar me puedo estar perfectamente 8 o 10 horas seguidas, soy un viciado lo se haha) y además tendria que volver a instalar el Windows, el VC++, eclipse con los emuladores de blackberry, android... Así que como restaurando los snapshots continuava congelandose he pensado que quizás no era el sistema operativo virtual, sinó que sería un problema del propio programa Virtualbox. Así que la solución era desinstalar e instalar de nuevo Virtualbox guardando los VDI(discos duros virtuales) para no tener que volver a instalar todas las maquinas y prepararlo todo, pero antes he querido hacer una prueva, era cojer una de mis maquinas virtuales(un Windows XP) i decirle que arranque con el ultimo snapshot de la VDI del Windows 7 afectado. ¡Y sorpresa, ya vuelve a funcionar! así que supongo que si os pasa esto es tan fácil como crear otro disco virtual pero al crearlo le dices usar un disco existente(o sea la ultima snapshot de la VDI afectada) y en principio tendría que funcionar.

Se que no es un problema que afecte a mucha gente, pero lo publico por si puedo sacar a alguien de un apuro... :laugh:

Gracias.
#47
¡Ahí le has dado Cosntance!
Por cierto, ¿eres policia?
haha pero a ver el hombre este que havia hecho dejava alguna tarjeta de memoria dentro del boli y encotnces cuando iva a casa la suegra con la excusa de ir al labavo a mear cambiava la memoria por otra? porque no creo que el boli estuviera tan dotado como para mandar als imagenes conectandose a algun router de por ahi hahaha
#48
¿En el cuarto de baño no?
hahaha ¡le gustan maduritas!
porque a ver si lo pusiera en el comedor pues se entiende que quizás es para enterarse de algo que teme sobre su suegra o su mujer... pero al estar justamente en el cuarto de baño...
hahaha
#49
¿NOD32 no aparece?
Para mi es el mejor. Y bueno estos datos no me los creo ni cobrando... hahahaha
lo más curioso que dicen casi 100% de efectividad... ¿pero esto se refieren a que casi no hay virus indetectables por GData? va hombre va... pero si los antivirus creo yo que no detectan ni el 30% del malware... si yo ninguno de los troyanos y otras especies de malware que he creado NUNCA me los han detectado ningún antivirus y estoy seguro de que los demás foreros de esta web tampoco les detectan los antivirus el malware que hacen... además por lo que he visto los antivirus sacan menos de 300 firmas de virus nuevos cada dia... ¿y cada dia en el mundo cuantos virus nuevos se crean? porque creo que se crean muchos más que 300...
Creo que los antivirus son un metodo para engañar al usuario de estar protegido cuando en realidad no ahcen nada más que consumir recursos del sistema... y claro que e simportante tener antivirus pero más importante es saber que los antivirus la protección que te dan es minima...
#50
Pues estoy crenado un programa que quiero que me guarde en un EDIT el nombre de  todas las ventanas abiertas en windows, y  desde el codigo de un boton he puesto esto:

EnumWinProc(hwnd,lParam);

entonces llama a la funcion de abajo:

BOOL CALLBACK EnumWinProc(HWND hwnd,LPARAM lParam){
    char nom[MAX_PATH];
        GetWindowText(hwnd,nom,MAX_PATH);
        if(strlen(nom))
        SendMessage(GetDlgItem(hwnd, ID_EDIT2), WM_SETTEXT, false,(LPARAM)nom);

        return TRUE;
     
}


Y aqui que he hecho este codigo, pero no me funciona bien ya que al pressionar en el botón me devuelve solo el nombre de la ventana del propio programa... ¿Me podeis decir como arreglarlo para que me ponga el nombre de todas las ventanas?

Muchissimas gracias de antemano