About me| Chi sono?| BLOG
Chiara| Paola| Valentina| Francesca
Home| Download| Poesie | Poems| Immagini | Pictures| Articoli | Papers| Winamp Plugins
English
› Home › Download › Poems › Pictures » Technical Papers › Winamp Plugins
Italiano
› Principale › Download › Poesie › Immagini » Articoli IoProgrammo › Plugins per Winamp

Attendi n secondi via codice, ovvero "Program Killer in Assembly"

Nel pacchetto Program Killer (http://progkill.sourceforge.net/) è incluso il programmino sleep.exe scritto da Joshua Kinard (GPL!):
#include < stdio.h >
#include < stdlib.h >

int main(int argc, char *argv[]) {
  if (argc < 1) {exit(0);} // If Command Line Args are < 1, then Exit
  sleep(atoi(argv[1])); // Sleep for X Seconds (X = Command Line Argument)
  exit(0); // Exit (superfluo)
  return 0;
}
Il relativo eseguibile occupa ben 95.527 byte! Sconvolto da tale mostruosità ho effettuato alcuni esperimenti:
  1. Compilazione con MingW -> 16k
  2. Versione Delphi -> 5k
  3. Versione MASM32 (non ottimizzata) -> 989 byte!
.386

      .model flat, stdcall
      option casemap :none
      include sleep.inc	 
      
.code

start:

      invoke SleepProc
      invoke ExitProcess, 0

SleepProc proc

      LOCAL clBuf[128]:BYTE
      invoke GetCL,1, ADDR clBuf
      .if eax == 1
        invoke atodw, ADDR clBuf
        invoke Sleep, eax
      .endif
      ret    
      
SleepProc endp

end start
A.S.L. Associazione Sonno Leggero :-)
Riferimenti/References: Click here - Clicca qui