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
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!!
Cita de: 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?
como dice ferdu lo recomendado para ver el programa que hcisite es olly y no un editor de hex, aun asi no esperes encontrar
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
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
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?
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.
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
Duda 3
¿se puede programar (y que se entienda) en hexadecimal puro?
Yo por lo menos no encuentro ningún tutorial. :-[
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....
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
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:
por poder puedes , pero como ese texto o algo q este a continuacion sea usado por otro programa o por el mismo si estas editando un exe ya te lo cargaste
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
Duda 5
¿por que en los binarios hay tantos 00? y seguidos... :-\
depende del binario q sea, pero es logico q el 0 sea usando de relleno en estructuras de datos
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
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 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 nada
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
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:
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
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))
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....
Cita de: jamonyqueso en 5 Noviembre 2007, 04:32 AM
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 :)
CitarLa 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.
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<~>
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!!