Título: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: jamonyqueso en 5 Noviembre 2007, 04:32 am Hola
Llevo unos dias que no llego a ninguna conclusion y una es esta: Duda 1: Hice un programa en Linux y es este #include <iostream> int main () { printf " hola nena"; } Asi de simple ;D Y la duda que se me plantea es esta: Ya compilado con "cc codigo.c"lo abro con Khexedit (de linux) y bien me salen cosas incomprensibles en hex y en ASCII... bien y como explicarlo ummmm...aver żHay alguna manera de entender eso?No digo la parte de Hex si no la ascii,la mayoria son simples puntos y caracteres tipo [] y tengo entendido que el ensamblador y el codigo hexadecimal es equivalente como jne=75 asi que se deberia entender...y creo que no esta cifrado,vamos,no creo que el compilador tenga para encriptarse solo. y además hay muchos números hexadecimales para tan poca cosa Y si se puede leer en hex żdonde encuentro la equivalencias? Duda 2: Tengo entendido que la ps1 usa mapas de bits de 256*256 a 16 bits,creo que era asi Y hay un programa que se llama psmplay que sirve para extraer vídeos,imágenes,mapas de bits y mas... y tenia la idea que desde una imagen recorriera desde el primer bit hasta el ultimo y extrajera los BMP pero la duda es la mayoría de los juegos están metidos en otros archivos mas grandes (como FF8 o el FF9) y suponía que los archivos BMP empiezan desde unas marcas(o unos códigos de iniciación,para saber si es realmente BMP,o JPG tamańo y tal y que acaba en otros)le hago ingieneria inversa a una foto y mi sorpresa es que impieza por varios "00" en hexadecimal ¬¬ con lo cual mi teoria se fue al traste,aparte de que aparecia la marca de la cámara de photos ¬¬ ...żcomo identifico codigo de BMP? Duda 3 żse puede programar (y que se entienda) en hexadecimal puro? Yo por lo menos no encuentro ningún tutorial. :-[ Duda 4 Al editar textos ascii en hexadecimal y si te quedas sin espacio para escribir żse puede agregar espacios? A mi se me come trozos de código(sobreescribe)....y no hay manera :huh: Duda 5 żpor que en los binarios hay tantos 00? y seguidos... :-\ Duda 6 Hay alguna manera de abrir un archivo en plan .RAR y ver sus archivos internos? como los bmp que están dentro de otros archivos grandes como decia antes. Duda 7 żpor que 75 o jne,por ejemplo ,al ejecutarse eso,funciona asi? żdonde esta programado?Es una duda que siempre quise saber. :rolleyes: Gracias por contestar Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: Ferсhu en 5 Noviembre 2007, 20:46 pm Duda 1:
Con olly Duda 2: el fotmato bmp empieza con "BM" y una cabecera, osea buscando eso. pero nose si usa bmp, yo imagino q no. Duda 3: Nop Duda 4: si se puede agregar espacio, pero desfasaria las direcciones, asi q el programa no funcionaria. Duda 5: q se yo, depende cada uno. Duda 6: los archivos estan codificados/comprimidos. por algo son rar no?? Duda 7: por q es una instruccion de asm q cumple ciertas caracteristicas. Es como preguntar por q la instruccion "n++" aumenta n. jaja Ademas te digo q lo mejor para sacarte las dudas es buscar y leer, no solo solucionas las dudas sino q evitas tener otras. Por q estoy seguro q ahora vas a tener una pregunta para cada duda q te conteste. y si hicieramos asi, tardarias demasiado en aprender, asi q lo mejor es buscar e informarte acerca de todo eso. Por suerte existe google. Saludos!! Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: x4uth en 5 Noviembre 2007, 21:41 pm Hola como dice ferdu lo recomendado para ver el programa que hcisite es olly y no un editor de hex, aun asi no esperes encontrarLlevo unos dias que no llego a ninguna conclusion y una es esta: Duda 1: Hice un programa en Linux y es este #include <iostream> int main () { printf " hola nena"; } Asi de simple ;D Y la duda que se me plantea es esta: Ya compilado con "cc codigo.c"lo abro con Khexedit (de linux) y bien me salen cosas incomprensibles en hex y en ASCII... bien y como explicarlo ummmm...aver żHay alguna manera de entender eso?No digo la parte de Hex si no la ascii,la mayoria son simples puntos y caracteres tipo [] y tengo entendido que el ensamblador y el codigo hexadecimal es equivalente como jne=75 asi que se deberia entender...y creo que no esta cifrado,vamos,no creo que el compilador tenga para encriptarse solo. y además hay muchos números hexadecimales para tan poca cosa Y si se puede leer en hex żdonde encuentro la equivalencias? PUSH "hola nena" CALL printf que vendria siendo tu programa en asm, esto sera solo una parte, para q el programa se ejecute adecuadamente en tu sistema operativo tiene que realizar una serie de operaciones que las incluye el compilador por su parte, por ejemplo poner lo q haces ahi en asm llebaria unos 20 bytes como maximo, en cambio seguro q tu programa compilado tiene minimo 20 000 bytes eso si no hisiste muchos includes... y si usas funciones como printf directamente de una libreria Duda 2: normalmente los empacadores no meten los bytes a pelo, sino que remplazan unos bytes por otros para ahorrar espacio (esto sin hablar de los q encriptan), eso lo hacen mediante algoritmos mas o menos complejos.Tengo entendido que la ps1 usa mapas de bits de 256*256 a 16 bits,creo que era asi Y hay un programa que se llama psmplay que sirve para extraer vídeos,imágenes,mapas de bits y mas... y tenia la idea que desde una imagen recorriera desde el primer bit hasta el ultimo y extrajera los BMP pero la duda es la mayoría de los juegos están metidos en otros archivos mas grandes (como FF8 o el FF9) y suponía que los archivos BMP empiezan desde unas marcas(o unos códigos de iniciación,para saber si es realmente BMP,o JPG tamańo y tal y que acaba en otros)le hago ingieneria inversa a una foto y mi sorpresa es que impieza por varios "00" en hexadecimal ¬¬ con lo cual mi teoria se fue al traste,aparte de que aparecia la marca de la cámara de photos ¬¬ ...żcomo identifico codigo de BMP? Duda 3 por poder se puede, de hecho los primeros programas se hicieron en binario... q lo entiendas y/o y q tengas el tiempo de hacerlo, eso ya es cosa tuya....żse puede programar (y que se entienda) en hexadecimal puro? Yo por lo menos no encuentro ningún tutorial. :-[ Duda 4 Al editar textos ascii en hexadecimal y si te quedas sin espacio para escribir żse puede agregar espacios? A mi se me come trozos de código(sobreescribe)....y no hay manera :huh: Duda 5 depende del binario q sea, pero es logico q el 0 sea usando de relleno en estructuras de datosżpor que en los binarios hay tantos 00? y seguidos... :-\ Duda 6 si tiene pass no hay manera de ver nada, si no tiene pass puedes abrirlo y ver su estructura , suelen estar organizados en bloques, cada bloque tiene el nombre del archivo y otros bloques q son partes del archivo comprimidos, pero amos que sin un algoritmo q descomprima no te sirve de nadaHay alguna manera de abrir un archivo en plan .RAR y ver sus archivos internos? como los bmp que están dentro de otros archivos grandes como decia antes. Duda 7 la instruccion JNE y todas las de ensamblador se ejecutan directamente en el CPU, el cpu esta formado por puertas logicas (AND, OR, NOT) que estan formadas basicamente por transistores (silicio dopado). yo no diria que esta programado, mas bien esta diseńado para que su circuito relalize las operaciones nesesarias en cada cadena de niveles bajo y alto (ceros y unos) que le lleganżpor que 75 o jne,por ejemplo ,al ejecutarse eso,funciona asi? żdonde esta programado?Es una duda que siempre quise saber. :rolleyes: Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: jamonyqueso en 6 Noviembre 2007, 23:38 pm La Duda 6
Hay alguna manera de abrir un archivo en plan .RAR y ver sus archivos internos? como los bmp que están dentro de otros archivos grandes como decia antes. Me exprese mal :( Ya se que se puede abrir con winrar .Lo que me referia es si en archivos NO comprimidos pero que estan juntos y no codificados.Se podrian "abrir ese archivo" en plan como una carpeta(como cuando abres winrar ,que se su estructura de carpetas(si las hay)) Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: Hendrix en 7 Noviembre 2007, 00:14 am Cita de: jamonyqueso link=topic=187038.msg888819#msg888819 Duda 5 żpor que en los binarios hay tantos 00? y seguidos... [/quote Eso depende de la alineación del archivo.... Duda 6 Hay alguna manera de abrir un archivo en plan .RAR y ver sus archivos internos? como los bmp que están dentro de otros archivos grandes como decia antes. Si, en el WinZip habia un fallo que al modificar el nomber del archivo se ejecutaba nada mas abrir el Zip, evidentemente esto esta parcheado actualmente :) Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: Ferсhu en 7 Noviembre 2007, 01:12 am Citar La Duda 6 Hay alguna manera de abrir un archivo en plan .RAR y ver sus archivos internos? como los bmp que están dentro de otros archivos grandes como decia antes. Me exprese mal sad Ya se que se puede abrir con winrar .Lo que me referia es si en archivos NO comprimidos pero que estan juntos y no codificados.Se podrian "abrir ese archivo" en plan como una carpeta(como cuando abres winrar ,que se su estructura de carpetas(si las hay)) creo q entender lo q keres decir. Si es lo q yo pienso, tenes q separar los archivos con algun editor hexa y guardarlos con otro nombre x separado. Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: jamonyqueso en 7 Noviembre 2007, 03:54 am Si si,lo has entendido bien
El problema es como hacerlo Ya que no se como empiezan los archivoa y como acaban en hexadecimal... Ya que abri una foto en BMP y aparecia al principio un porron de ceros ... y no sale el "BM" como dijo <~>FeRcHu<~> Título: Re: Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas) Publicado por: Ferсhu en 7 Noviembre 2007, 04:45 am Mira aca te pongo un ejemplo:
Citar 00000000 42 4D 86 00 00 00 00 00 00 00 36 00 00 00 28 00 BM†.......6...(. 00000010 00 00 05 00 00 00 05 00 00 00 01 00 18 00 00 00 ................ 00000020 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 ..P............. 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000080 00 00 00 00 00 00 42 4D 86 00 00 00 00 00 00 00 ......BM†....... 00000090 36 00 00 00 28 00 00 00 05 00 00 00 05 00 00 00 6...(........... 000000A0 01 00 18 00 00 00 00 00 50 00 00 00 00 00 00 00 ........P....... 000000B0 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ............˙˙˙˙ 000000C0 FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF ˙˙˙˙˙˙˙˙˙˙˙.˙˙˙˙ 000000D0 FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF ˙˙˙˙˙˙˙˙˙˙˙.˙˙˙˙ 000000E0 FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF ˙˙˙˙˙˙˙˙˙˙˙.˙˙˙˙ 000000F0 FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF ˙˙˙˙˙˙˙˙˙˙˙.˙˙˙˙ 00000100 FF FF FF FF FF FF FF FF FF FF FF ˙˙˙˙˙˙˙˙˙˙˙ eso seria un archivo con 2 fotos bmp, una negra al principio y luego apenas termina una blanca. Como saber cuando termina la foto? bueno cuando empieza la otra jaja. es la unica forma o fijarte el tamańo pero te vas a complicar. con un editor hexadecimal copias el segundo bloke donde empieza BM en uno nuevo, lo guardas como algo.bmp y listo ya tenes la otra imagen. Espero q sea eso lo q kerias saber. Saludos!! |