Ir al contenido


Foto

Trampa


  • Por favor identifícate para responder
12 respuestas en este tema

#1 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 10 diciembre 2016 - 02:56

Aprovechando el código que escribí para contestar esta pregunta se me ha ocurrido realizar una broma trampa. El código simula una rara y maligna BSOD. Si cambiamos el escritorio activo y el del proceso, la app parecerá una verdadera BSOD. El Botón "Windows" no funcionará, aunque si Ctl-Alt-Sup. No tomaremos el control hasta que cerremos la sesión, apaguemos o se termine la app trampa. 
 

delphi
  1. program Trampa;
  2.  
  3.  
  4. uses
  5.   Windows,
  6.   Messages,
  7.   SysUtils;
  8.  
  9. var
  10.   WScreen, HScreen: integer;
  11.   Text: String;
  12.   TextRect: TRect;
  13.   TextSize: TSize;
  14.   Font1, Font2: HFONT;
  15.  
  16. // Encuentra el tamaño de la caja que envuelve un texto multilínea
  17. procedure GetTextExtentML(DC: HDC; Msg: PCHAR; Len: integer; var Size: TSize);
  18. var
  19.   Ancho, Alto, nLines: integer;
  20.   C, Ini: PCHAR;
  21. begin
  22.   Ancho:= 0; Alto:= 0; nLines:= 0;
  23.   C:= Msg; Ini:= Msg;
  24.   repeat
  25.     if ((C+1)^ = #13) or ((C+1)^ = #0) then
  26.     begin
  27.       GetTextExtentPoint32(DC, Ini, DWORD(C)-DWORD(Ini)+1, Size);
  28.       if Ancho < Size.cx then Ancho:= Size.cx;
  29.       if Alto  < Size.cy then Alto:=  Size.cy;
  30.       Ini:= C;
  31.       inc(nLines);
  32.     end;
  33.     inc(C);
  34.   until C^ = #0;
  35.   Size.cx:= Ancho;
  36.   Size.cy:= Alto*nLines;
  37. end;
  38.  
  39. // La función de tratamiento de mensajes
  40. function WindowProc(Wnd: HWND; uMsg: Cardinal; wParam, lParam: Integer): Integer; stdcall;
  41. var
  42.   ps: PAINTSTRUCT;
  43.   DC: HDC;
  44.   Brush: HBRUSH;
  45.   Rect: TRect;
  46. begin
  47.   Result := 0;
  48.   case uMsg of
  49.     WM_PAINT:
  50.     begin
  51.       DC:= BeginPaint(Wnd, ps);          //Comenzamos
  52.       GetWindowRect(Wnd, Rect);
  53.       Brush:= CreateSolidBrush($FF2525); //brocha azul
  54.       SelectObject(DC, Brush);
  55.       Rectangle(DC, 0, 0, Rect.right, Rect.bottom); //Pintamos un rectángulo
  56.       SetTextColor(DC, $FFFFFF);        // Escribimos un Texto
  57.       SetBkMode(DC, TRANSPARENT);
  58.       SelectObject(DC, Font2);
  59.       GetTextExtentPoint32(DC, 'HH', 2, TextSize);
  60.       TextOut(DC, TextSize.cx+(WScreen-TextSize.cx) div 2, TextSize.cy div 2, '}:(', 3);
  61.       SelectObject(DC, Font1);
  62.       DrawText(DC, PCHAR(Text), Length(Text), TextRect, DT_CENTER);
  63.       DeleteObject(Brush);              //Destruimos la brocha
  64.       EndPaint(Wnd, ps);
  65.     end;
  66.     WM_CLOSE:
  67.       DestroyWindow(Wnd);
  68.     WM_DESTROY:
  69.       PostQuitMessage(0);               //Destruimos la ventana
  70.     else
  71.       // Función por defecto de tratamiento de mensajes.
  72.       Result:= DefWindowProc(Wnd, uMsg, wParam, lParam);
  73.   end;
  74. end;
  75.  
  76. // El programa principal
  77. var
  78.   Msg: TMsg;
  79.   WinClass: WNDCLASS;
  80.   DC: HDC;
  81.   Desktop: HWND;
  82. begin
  83.   // Cambiamos de escritorio
  84.   Desktop:= CreateDesktop('OtherDesktop', 0, 0, 0, DESKTOP_CREATEWINDOW or DESKTOP_SWITCHDESKTOP, 0);
  85.   SetThreadDesktop(Desktop);
  86.   SwitchDesktop(Desktop);
  87.   ShowCursor(False);
  88.  
  89.   // Preparando la pantalla
  90.   WScreen:= GetSystemMetrics(SM_CXSCREEN);
  91.   HScreen:= GetSystemMetrics(SM_CYSCREEN);
  92.  
  93.   // Preparando fuentes y mensaje de texto
  94.   DC:= GetDC(0);
  95.   Font1:= CreateFont(48,0,0,0,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,
  96.                     CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, VARIABLE_PITCH, 'Arial Rounded MT Bold');
  97.   Font2:= CreateFont(300,0,-900,0,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,
  98.                     CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, VARIABLE_PITCH, 'Arial Rounded MT Bold');
  99.   Text:= 'HAS SIDO INTERCEPTADO COMO UN SER MALIGNO'+#13+'VAS A SER BLOQUEADO COMO UN VULGAR TERRORISTA'+#13+'TUS ENSERES SERÁN CONFISCADOS';
  100.   SelectObject(DC, Font1);
  101.   GetTextExtentML(DC, PCHAR(Text), Length(Text), TextSize);
  102.   ReleaseDC(0, DC);
  103.   TextRect.Left:= (WScreen - TextSize.cx) div 2;
  104.   TextRect.Right:= TextRect.Left + TextSize.cx;
  105.   TextRect.Top:= (HScreen - TextSize.cy) div 2;
  106.   TextRect.Bottom:= TextRect.Top + TextSize.cy;
  107.  
  108.   // Preparando la ventana
  109.   ZeroMemory(@WinClass, sizeof(WinClass));
  110.   WinClass.lpfnWndProc:= @WindowProc;
  111.   WinClass.lpszClassName:= 'BSOD';
  112.  
  113.   Windows.RegisterClass(WinClass);
  114.   CreateWindowEx(0, WinClass.lpszClassName, '', WS_VISIBLE + WS_POPUP,
  115.                  0, 0, WScreen, HScreen, HWND_DESKTOP, 0, 0, nil);
  116.  
  117.   // El bucle de mensajes
  118.   repeat GetMessage(Msg, 0, 0, 0);
  119.     TranslateMessage(Msg);
  120.     DispatchMessage(Msg);
  121.   until (Msg.Message = WM_QUIT);
  122.  
  123.   // Retornando al escritorio por defecto
  124.   SwitchDesktop(OpenDesktop('Default', 0, true, DESKTOP_SWITCHDESKTOP));
  125.   ShowCursor(true);
  126.  
  127.   // Lipiando
  128.   DeleteObject(Font1);
  129.   DeleteObject(Font2);
  130.   CloseHandle(Desktop);
  131. end.

Tranquilos, el programita termina con Alt-F4 pero podríamos eliminarlo. JeJe :dmad:


Saludos.

Archivos adjuntos


  • 2

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 10 diciembre 2016 - 08:29

Ahora recuerdo una broma que hizo cHackAll en CD jajajaja

 

Saludos


  • 0

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 11 diciembre 2016 - 06:16

Ahora recuerdo una broma que hizo cHackAll en CD jajajaja

 

Saludos

 No recuerdo esa broma, ¿tienes el enlace? Tratándose de cHackAll seguro que fue buenísima. :)

 

Saludos.


  • 0

#4 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 11 diciembre 2016 - 12:26

Me recuerda a este Señor

%7B8FD0F9F5-8EA6-43F8-9F09-2441364F24B5%Chad Z. Hower aka Kudzu,

Saludos!


  • 0

#5 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 11 diciembre 2016 - 12:58

Me recuerda a este Señor

%7B8FD0F9F5-8EA6-43F8-9F09-2441364F24B5%Chad Z. Hower aka Kudzu,

Saludos!

 

cHackAll nada tiene que ver con él.

 

 

Saludos.


  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 11 diciembre 2016 - 04:50

Creo recordar que la broma hacía esto mismo o algo muy parecido y que bloqueaba algunas combinaciones de teclas. Si recuerdo que en ese entonces Emilio se enojó por la inocentada, y ponía como excusa que se mandó a cagar el servidor y andaba con ganas de empezar una baneada colectiva. Lo cierto es que podía matarse el proceso con el Ctrl+Alt+Supr (aunque no recuerdo si también valía el Alt+F4)

Esa fue quizá la 1ra señal de que los ánimos estaban caldeados en CD, y fue entre otras cosas lo que llevo a la existencia de DA. El resto de la historia la conoces ;)

 

Por cierto, se extraña la presencia del maestro Javier. Sabía que hace un tiempo exploraba las aguas de C# pero vaya a saber que será hoy de él. :(

 

Saludos,


  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 diciembre 2016 - 05:14

Creo recordar que la broma hacía esto mismo o algo muy parecido y que bloqueaba algunas combinaciones de teclas. Si recuerdo que en ese entonces Emilio se enojó por la inocentada, y ponía como excusa que se mandó a cagar el servidor y andaba con ganas de empezar una baneada colectiva. Lo cierto es que podía matarse el proceso con el Ctrl+Alt+Supr (aunque no recuerdo si también valía el Alt+F4)

Esa fue quizá la 1ra señal de que los ánimos estaban caldeados en CD, y fue entre otras cosas lo que llevo a la existencia de DA. El resto de la historia la conoces ;)

 

Por cierto, se extraña la presencia del maestro Javier. Sabía que hace un tiempo exploraba las aguas de C# pero vaya a saber que será hoy de él. :(

 

Saludos,

 

Está bien, de vez en cuando charlo con él y le comento que se le extraña, pero se autoexilió de toda comunidad.

 

Saludos


  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 diciembre 2016 - 05:15

 No recuerdo esa broma, ¿tienes el enlace? Tratándose de cHackAll seguro que fue buenísima. :)

 

Saludos.

 

Fue un intento de festejar a roman haciendo que todas las ventanas dijeran su nombre :D :D :D

 

Pero nunca dijo como se quitaba y muchos terminaron por dar botonazo y reiniciar la computadora. Voy a buscar el hilo y les paso la URL. :)

 

Saludos


  • 0

#9 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 diciembre 2016 - 05:20

Bueno, haciendo gala de la fama que me hicieron en CD (egopolice) aquí está el hilo, aunque parece que borraron el programa :D :D :D

 

http://clubdelphi.co...licidades roman

 

Saludos

 

PD: el mensaje #40 es el que comenta Delphius ;)


  • 0

#10 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 11 diciembre 2016 - 05:28

Ya encontré la broma, aunque no el hilo donde se hizo. :D :D :D

 

 

Saludos.


  • 0

#11 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 11 diciembre 2016 - 05:34

Que mal mi memoria que ya no recordaba bien de a como era la broma y como era para matarlo. :D

 

Saludos,


  • 0

#12 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 11 diciembre 2016 - 05:46

Pues lo he ejecutado (después de analizar el código *-)  ) y si que tiene gracia :D :D :D.

 

Saludos.


  • 1

#13 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 11 diciembre 2016 - 06:38

Pues lo he ejecutado (después de analizar el código *-)  ) y si que tiene gracia :D :D :D.

 

Saludos.

 

Pero no les hizo gracias en ese momento :D :D :D

 

Saludos


  • 0




IP.Board spam blocked by CleanTalk.