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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: [1] 2
1  Foros Generales / Sugerencias y dudas sobre el Foro / Imagenes de Botones en posts creados en: 6 Febrero 2015, 15:09 pm
Hola, no se si le pasa a alguien, he notado que en los temas que he creado, me aparecen 4 botones en la esquina superior derecha del post:

CITAR-MODIFICAR-XXXXX-YYYYYY

el XXXXXX es
http://foro.elhacker.net/Themes/classic/images/spanish/accept.gif

el YYYYYY es
http://foro.elhacker.net/Themes/classic/images/spanish/reject.gif

Esas dos imagenes, no las puedo visualizar ni abrir. 404.

Es por el idioma que tengo puesto en opciones?

Saludos y gracias.




edit: Si sale modificar y usable ^^





2  Programación / Programación C/C++ / Sobrecarga operador + en: 5 Febrero 2015, 15:43 pm
Hola, estoy practicando el tema de sobrecarga y me tope con 2 problemas. :silbar:

Código
  1. class Foo
  2. {
  3. public:
  4. //Foo& operator+(const Foo& f); tampoco funciona
  5. //Si funciona (Foo& f)
  6. Foo& operator+(Foo const& f){
  7. bar_ += f.getBar();
  8. return *this;
  9. }
  10. int getBar(){
  11. return bar_;
  12. }
  13. private:
  14. int bar_;
  15. };
  16.  
Por alguna razon, cuando sobrecargo el operador +, Visual Studio 2010 me exigue que el parametro sea una referencia simple "Foo& f" y no const. Si coloco const, salta error que no puede convertir de const & a & desde el metodo Foo::getBar().
No tengo visual studio a mano como pasar el error exacto.
(passing `const Foo' as `this' argument of `int Foo::getBar()' discards qualifiers )

Otra cosa, en http://www.parashift.com/c++-faq/overview-op-ov.html
Coloca este ejemplo
Código:
  Fred operator+ (Fred const& x, Fred const& y);
Pero vc++ y blodshed dev c++ tambien se quejan de que solo se puede pasar un argumento a un operador unario.

Será que tiene solamente parcial soporte de c++11?

Saludos y Gracias
3  Programación / Programación C/C++ / Puntero a funcion como argumento en: 9 Enero 2015, 22:10 pm
Holas estimados ,
estaba jugando un poco con c++ para crear una clase que manejara menus de consola.
Hasta ahora tengo algo funcionando como esto:
Código
  1. void proc1(void){
  2.    std::cout << "proc1" << std::endl;
  3. }
  4. void proc1a(void){
  5.    std::cout << "proc1a" << std::endl;
  6. }
  7. void proc1b(void){
  8.    std::cout << "proc1b" << std::endl;
  9. }
  10. void proc2(void){
  11.    std::cout << "proc 2" << std::endl;
  12. }
  13.  
  14. void proc3a(void){
  15.    std::cout << "proc 3a" << std::endl;
  16. }
  17. void proc3b(void){
  18.    std::cout << "proc 3b" << std::endl;
  19. }
  20. void proc3c(void){
  21.    std::cout << "proc 3c" << std::endl;
  22. }
  23.  
  24.  
  25.  
  26. int main(int argc, char* argv[]){
  27.    CMenu menu;
  28.    menu.AddMenu("OPCION 1", proc1);
  29.    menu.AddSubMenu("OPCION1A", proc1a, 1); //submenu de la opcion 1
  30.    menu.AddSubMenu("OPCION1B", proc1b, 1);
  31.    menu.AddMenu("OPCION 2", proc2);
  32.    menu.AddMenu("OPCION 3", NULL); //opcion 3 separador, no tendria funcion
  33.    menu.AddSubMenu("OPCION3A",  proc3a, 3); //submenu de la opcion 3
  34.    menu.AddSubMenu("OPCION3B", proc3b, 3);
  35.    menu.AddSubMenu("OPCION3C", proc3c, 3);
  36.    menu.PrintMenu();
  37.    menu.DoMenu();
  38.    return 0;
  39. }
  40.  

El resultado es algo asi:
Citar
1: OPCION 1
   11: OPCION1A
   12: OPCION1B
2: OPCION 2
3: OPCION 3
   31: OPCION3A
   32: OPCION3B
   33: OPCION3C
0: SALIR
Eliga una Opcion:

Por ejemplo si se elige la opcion 11, se llamará a proc1a(), y esto se repite hasta que se elija salir.

El problema es, el puntero a funcion como parametro lo tengo defenido asi:
Código
  1. typedef void(*callback_proc_)(void);
  2. inline void CMenu::AddMenu(const char* cap, callback_proc_ proc){
  3.  

Con esta estructura, estoy forzando que el procedimiento que esta asociado al item del menu es "void name(void)"

Como se podría hacer para poder pasar como parametro a AddMenu() una funcion con numero y tipo de parametros desconocido?

Saludos Y gracias
4  Foros Generales / Foro Libre / reCaptcha para que sirven realmente en: 29 Septiembre 2012, 06:43 am
No se si alguno se acuerda de esta noticia:
http://foro.elhacker.net/noticias/captcha_iquestpara_que_sirven_realmente-t358126.0.html


Hay un comentario alli de una "bonita teoria de conspiracion" que me acordaba por vaya saber que razon :silbar:
pues la idea no me parecia tan loca.

Es cierto. Los reCaptcha ayudan para la digitalizacion de libros.
http://www.ted.com/talks/luis_von_ahn_massive_scale_online_collaboration.html


Se sacan palabras de  libros que estan siendo digitalizados,
Una que se sabe  la respuesta y otra que no.
Al indicar bien la palabra conocida, reCaptcha asume que eres humano y ademas  que has puesto la segunda palabra  medianamente bien.
Si 10 usuarios colocan esa palabra desconocida de la misma manera, reCaptcha asume que es la forma correcta de transcribir esa palabra y la marca como conocida.
5  Programación / ASM / IDE EasyCode MASM en: 24 Diciembre 2011, 15:08 pm
Hola. navegando por ahí me tope de pura casualidad con esta IDE:

Tiene version en español e inglés.
http://www.easycode.cat/Spanish/index.htm

trae:
Editor de recursos
Code Snipets/Tooltips/Completition
Crea una lista de Variables y Funciones.
Y el entorno es mucho mas amistoso que radAsm.

No requiere ninguna configuracion extra, solamente tener el paquete de masm instalado en algun lugar.


Saludos.
6  Programación / Ingeniería Inversa / crackme 06 by Enko en: 8 Diciembre 2011, 18:14 pm
Les dejo este keygenme que contiene una rutina de verificacion de licencias bastante particular. (cuando lo analicen, sabrán a lo que me refiero).
Generar llave valida les será particularmente "entretenido".

No contiene ningun tipo de proteccion anti-debug.

Mencion de honor: para el que logre hacer un parche
         mostrando el mensaje correcto.

Medalla de BRONCE: licencia valida.
Medalla de PLATA: licencia valida para  su NICK.
Medalla de ORO: al que genere un keygen valido.



http://www.mediafire.com/?ttc496dzbhf18ht
http://www.megaupload.com/?d=Y5GABYYW
http://dl.dropbox.com/u/51061541/crackme6.7z

Diviertanse y saludos.
7  Programación / ASM / [Codigo] Pequeño Servidor HTTP en: 3 Diciembre 2011, 22:29 pm
Código
  1. ;modificar szRoot para indicar la ubicacion del servidor, default C:\Server
  2. ;msvcrt no viene en el paquete de fasm, la crean con la utilidad dll2inc
  3. ;o hacen los include a mano^^
  4. format PE Console
  5. entry start
  6.  
  7. include '%fasminc%/win32a.inc'
  8. include '%fasminc%/macro/if.inc'
  9.  
  10. MAX_QUEUE   equ 100     ;max namber of pending connections
  11. BUFFER_SIZE equ 2048    ;max size of the header sent by the client
  12. MAX_URL_SIZE equ 1024   ;max size of url in the header send
  13. SHOW_DETAILED_MSG equ TRUE ;set TRUE if want to see the full client message
  14.  
  15. section '.data' data readable writeable
  16.    wsa     WSADATA
  17.    port    dd 80
  18.  
  19.    szPause db "PAUSE",0
  20.    h404    db "HTTP/1.1 404 Not Found",13,10,"Server: EnkoHttpServer 1.0.0.0 ",13,10,13,10,"<HTML><BODY>404 Not Found</BODY></HTML>",13,10
  21.    .size = $ - h404
  22.    h200    db "HTTP/1.1 200 OK",13,10,"Server: EnkoHttpServer 1.0.0.0 ",13,10,"Allow: GET",13,10,13,10
  23.    .size = $ - h200
  24.    szRoot      db "C:\Server",0
  25.    szSlashes   db '/\',0
  26.    szSlash     db '\',0
  27.    szTockens   db " ",13,10,0
  28.    szError     db "ERROR: %i",13,10,0
  29.    szDot       db ".",0
  30.    szFileNotExists db "File Not Exists",13,10,0
  31.    szInt       db "%i",0
  32.    szFile      db "FILE: %s",13,10,0
  33.    szClient    db "Client IP: %s",13,10,0
  34.    szRequest   db "REQUEST: %s",13,10,0
  35.    szStatus    db "STATUS: %s",13,10,0
  36.    szString    db "%s",0
  37.    szEndLine   db 13,10,0
  38.    .size = $ - szEndLine
  39.    szBr        db "<br>",0
  40.    szIndex     db "index.html",0
  41.    szFileSent    db "File Sent ok",13,10,0
  42.    .size = $ - szBr
  43.    wSocketVersion dd 0x0101
  44.    transmiteBuffer dd h200,h200.size,NULL,NULL
  45.    thread  dd ?    
  46.    peer    dd ?
  47.    peerAddr sockaddr_in
  48.    sizePeerAddr dd sizeof.sockaddr_in
  49.    sock     dd ?
  50.    sock_addr   sockaddr_in
  51.    szBuffer db 32 dup ?
  52.    szIp     db 16 dup ?
  53.  
  54.  
  55. section '.code' code readable executable
  56. start:
  57.    ;inicializacion socket
  58.    invoke  WSAStartup, [wSocketVersion], wsa    
  59.    invoke  socket,AF_INET,SOCK_STREAM,NULL
  60.    mov     [sock],eax    
  61.    mov     [sock_addr.sin_family], AF_INET
  62.    invoke  htons,[port]
  63.    mov     [sock_addr.sin_port],ax    
  64.    mov     [sock_addr.sin_addr],NULL
  65.    invoke  bind, [sock], sock_addr,sizeof.sockaddr_in
  66.    .if eax <> 0
  67.        invoke  WSAGetLastError
  68.        cinvoke printf, szError, eax        
  69.    .endif    
  70.    invoke listen, [sock],MAX_QUEUE
  71.    ;activamos la escucha del socket
  72. accepted:
  73.    invoke accept, [sock],peerAddr,sizePeerAddr
  74.    mov     [peer],eax  
  75.    stdcall ipToString,[peerAddr.sin_addr],szIp
  76.    cinvoke printf, szClient,szIp
  77.    ;nuevo hilo para cada conexion
  78.    invoke CreateThread, NULL,NULL, resolveConnection,[peer],NULL,NULL
  79.    ;o mejor la funcion de abajo, ayudaria a la estabilidad y contra ataques DOS
  80.    ;invoke QueueUserWorkItem, resolveConnection, [peer], NULL ;WT_EXECUTEDEFAUL
  81.    jmp     accepted
  82.    invoke  ExitProcess,0
  83.  
  84. ;hilo que resuelve las peticiones
  85. proc resolveConnection, lpParam
  86. local lpeer: DWORD, lbuffer: DWORD, lurl: DWORD, lfile: DWORD  
  87.    mov     eax, [lpParam] Dermatoesqueleto    mov     [lpeer],eax
  88.    cinvoke malloc, BUFFER_SIZE
  89.    mov     [lbuffer],eax
  90.    invoke  recv, [lpeer],[lbuffer],BUFFER_SIZE,0  
  91.    ;vemos si hay un mensaje en el buffer y continuamos
  92.    .if eax <> 0    
  93.        mov ebx,[lbuffer]
  94.        mov byte [ebx+eax],0
  95.        .if SHOW_DETAILED_MSG
  96.            cinvoke printf,szRequest, [lbuffer]    
  97.        .endif
  98.        cinvoke strtok, [lbuffer], szTockens
  99.        .if eax <> 0  
  100.            ;solamente respondemos al mensaje GET
  101.            .if dword[eax] = "GET"          
  102.                ;url sring allocation
  103.                ;buscamos la url en la peticion GET
  104.                ;solamente las peticiones que terminan con alguna extensión
  105.                cinvoke malloc, MAX_URL_SIZE
  106.                mov    [lurl],eax
  107.                cinvoke strcpy, [lurl],szRoot
  108.                cinvoke strtok, NULL, szTockens
  109.                cinvoke strcat,[lurl],eax  
  110.                mov     ebx,eax      
  111.                cinvoke strlen, eax
  112.                mov edx,eax
  113.                dec edx
  114.                .repeat  
  115.                    dec eax
  116.                    cmp byte[ebx+eax],"/"
  117.                    .if ZERO?
  118.                        mov byte[ebx+eax],"\"
  119.                    .endif                    
  120.                .until eax = 0
  121.                .if byte[ebx+edx] = "\"
  122.                    cinvoke strcat,[lurl],szIndex
  123.                .endif
  124.                cinvoke printf, szFile, [lurl]
  125.                ;ya tenemos el nombre del archivo, ahora lo abrimos desde el disco
  126.                invoke  CreateFile,[lurl],GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_ARCHIVE,0
  127.                ;si el archivo existe, lo enviamos
  128.                .if eax <> INVALID_HANDLE_VALUE  
  129.                    mov [lfile],eax            
  130.                    invoke  GetFileSize, [lfile],NULL
  131.                    invoke  TransmitFile, [lpeer],[lfile],eax,NULL,NULL,transmiteBuffer,NULL  
  132.                    .if eax
  133.                        ;escribimos en la consola el detalle
  134.                        cinvoke printf, szStatus, szFileSent
  135.                    .endif
  136.                    invoke  CloseHandle, [lfile]
  137.                .else
  138.                    ;no existe el archivo, error 404
  139.                    cinvoke printf, szStatus, szFileNotExists                    
  140.                    invoke  send, [lpeer], h404, h404.size, 0                
  141.                .endif
  142.                cinvoke free, [lurl]
  143.            .endif
  144.        .endif
  145.    .endif
  146.    .exit:
  147.    cinvoke free, [lbuffer]
  148.    invoke  CloseHandle, [lpeer]
  149.    invoke  ExitThread
  150.    ret
  151. endp
  152.  
  153. ;convertimos DWORD ip  a una cadena
  154. proc ipToString, ip, string
  155. local buffer: DWORD
  156.    mov ebx, [ip]
  157.    mov esi,4
  158.    mov eax,[string]
  159.    mov byte [eax],0
  160.    .repeat
  161.        xor     eax,eax
  162.        mov     al,bl
  163.        cinvoke sprintf,[buffer],szInt,eax
  164.        cinvoke strcat,[string],[buffer]
  165.        cinvoke strcat,[string],szDot
  166.        shr ebx,8
  167.        dec esi
  168.    .until esi=0
  169.    cinvoke strlen, [string]
  170.    mov ebx, [string]
  171.    mov byte[ebx+eax-1],0
  172.    mov byte[buffer],0
  173.    ret
  174. endp
  175. section '.idata' import data readable writeable
  176.  
  177. library kernel32,'KERNEL32.DLL',\
  178.        user32,'USER32.DLL',\
  179.        msvcrt,'msvcrt.dll',\
  180.        wsock32, 'WSOCK32.DLL'
  181.  
  182. include '%fasminc%\api\kernel32.inc'
  183. include '%fasminc%\api\user32.inc'
  184. include '%fasminc%\api\msvcrt.inc'
  185. include '%fasminc%\api\wsock32.inc'
  186.  

El codigo funciona bastante bien. Si la url es complicada es probable que no la pueda resolver. En canto a saturacion o DDOS, sumamente susceptible.

Screenshot
http://i41.tinypic.com/5lxyfk.png

hay una duda que tengo:
Si se usa  CreateThreade es necesario usar ExitThread... hasta ahi bien.

Ahora, si se  usa QueueUserWorkItem, ¿Hace falta?
en la msdn no especifica, hice la prueba y aparentemente no. Ya que si se usa, en una prueba rapida se nota que deja de funcionar la segunda vez que se llama.

Saludos.
8  Programación / ASM / masm, msvcrt. en: 1 Diciembre 2011, 16:53 pm
Hola, pense que era mi compu que tenia algun conflicto con visual studio o algo, pero no. Instalacion nueva del paquete de http://www.masm32.com/

Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none   ; case sensitive
  4.      include C:\masm32\include\windows.inc
  5.      include C:\masm32\include\kernel32.inc
  6.      include C:\masm32\include\user32.inc
  7.      include C:\masm32\include\msvcrt.inc
  8.      includelib C:\masm32\lib\kernel32.lib
  9.      includelib C:\masm32\lib\msvcrt.lib
  10.      includelib C:\masm32\lib\user32.lib
  11.  
  12. .code
  13.    szPause db 'pause',0
  14.    szFmt db '%s',0
  15.    charsWritten dd 0
  16. start:
  17.    invoke AllocConsole
  18.    invoke GetStdHandle, STD_OUTPUT_HANDLE
  19.    invoke WriteConsole, eax, offset szPause, 5, offset charsWritten,NULL
  20.    invoke crt_printf,offset szFmt, offset szPause
  21.    invoke crt_system, offset szPause
  22.    invoke ExitProcess, 0
  23.    ret
  24. end start
  25.  
El resultado deberia de ser "pausepausePresione una tecla para continuar..."
Sin embargo, crt_printf no imprime la cadena, si devuelve 5 que son los caracteres que escribio. Es decir esta "imprimiendo el texto" pero no se imprime en la pantalla.

1)
Alguna idea de porque no imprime con printf?
Con o sin AllocConsole el resultado es el mismo. aunque printf se tendria que encargar solo de alojar una consola si  no esta  creada.


Saludos.
9  Programación / Ingeniería Inversa / Crackme 05 consola obfuscado en: 23 Octubre 2011, 12:29 pm
Para aquellos que les guste nopear saltos  :rolleyes:

A ver quien encuentra el salto correcto!!!


Objetivo: Hacer un parche para ver mensaje de "buen chico" o bien, encontrar clave valida. (no vale invertir cadenas de los mensajes)
Detalle:
*)El crackme no esta empaquetada
*)El crackme esta sumamente obfuscado
*)La validacion es sumamente sencilla
*)Esta en modo consola, al arrancar ingresen el serial, boton enter y rezar ^^

Dificultad: Ni idea, depende en lo que se tarde en resolver, ya me lo comentaran.

Vale tanto parche como encontrar el serial valido.



http://www.mediafire.com/?x0m3r29wv99xx5j
http://www.megaupload.com/?d=WPS6NGIN
10  Programación / Ingeniería Inversa / keygenme4 console en: 20 Octubre 2011, 20:43 pm
Hola, como vi que se han quedado sin apps para resolver, hice uno mas.

Objetivo: realizar un keygen
  pueden postear aqui user y serial valido.
Bonus: la contraseña del codigo fuente es  la suma de serials de estos usuarios:
ABCD, EFGH, IJKL (sin las comas, simplemente los 3 serials juntos)

Parche: no vale patch, en realidad, si abren la ejecutable en olly, esta señalado donde hacer el patch, asi que no presenta gran desafio.

Dificultad: no tan facil,l no tan dificil. Yo he tardado una hora en generar la rutina que me diera serials validos. (y eso que yo hice la rutina para comprobar la validez)

Formato:
user son 4 caracteres ascii cualquiera.
serial son 8 caracteres hexadecimales, un numero de 32bit rempresentado en ascii.

La generacion tiene dos trucos, analicen el codigo bien ^^
Cualquier duda es bienvenida



le dejo los links y mirrors
http://www.mediafire.com/?2cl5c7vplrkvwvz
http://www.megaupload.com/?d=1CIXGZCR




Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines