Programação num hex editor
#1
Publicado 19 de Setembro de 2012 - 10:43
Como faço para programar num hex editor como Frhed?
Onde posso encontrar um manual sobre a sintaxe?
#2
Publicado 19 de Setembro de 2012 - 11:06
#3
Publicado 24 de Setembro de 2012 - 09:26
#4
Publicado 24 de Setembro de 2012 - 09:31
não faz sentido.
esses editores existem para visualizar(editar dados binários, não para codificação
#5
Publicado 24 de Setembro de 2012 - 09:37
Editado por dicas3d, 24 de Setembro de 2012 - 09:37.
#7
Publicado 24 de Setembro de 2012 - 09:42
Como aprender a alterar esse tipo de dados neste tipo de ficheiros?
Editado por dicas3d, 24 de Setembro de 2012 - 09:48.
#8
Publicado 24 de Setembro de 2012 - 09:44
#9
Publicado 24 de Setembro de 2012 - 09:51
#10
Publicado 24 de Setembro de 2012 - 10:29
#11
Publicado 24 de Setembro de 2012 - 12:43
HappyHippyHippo, em 24 de Setembro de 2012 - 10:29, disse:
E que tal responder à pergunta? Ainda não ajudaste em nada o dicas3d. É desaconselhado porquê e por quem?
Bem, primeiro vais ter de aprender o formato dos executáveis e objectos em Windows, que se chama PE-COFF. Este formato tem básicamente um monte de tabelas e é dividido em diferentes sections. A maior parte do ficheiro vai conter código x86/x64/ARM/.NET, e uma tabela de "relocations" no caso de object files (COFF). Estas relocations são usadas pelo linker (link.exe no Windows) para juntar várias bibliotecas.
Dependendo da tool que gerou o ficheiro, pode ter ainda secções para constructores estáticos de C++, ou tabelas usadas pelo Windows para fazer 64-bit exception handling, ou recursos como tabelas de texto (para internacionalização), icons, bitmaps, etc.
Em Linux o formato utilizado é o ELF, e a sua estrutura é semelhante nos conceitos.
Spec oficial:
http://msdn.microsoft.com/en-us/library/windows/hardware/gg463119.aspx
Resumo:
http://www.delorie.com/djgpp/doc/coff/
Quanto ao código em si, o melhor é veres nos manuais de Intel para x86.
Agora, ninguém programa este tipo de ficheiros à mão. Podes usar o hex editor para confirmar a estrutura dos ficheiros, ou usa a tool objdump que vem com as tools do GCC/LLVM que faz o mesmo mas faz um print todo bonito para a consola.
Se quiseres gerar estes ficheiros, usa um assembler para gerar os vários object files (COFF) e depois o linker para os combinar em um executável (PE).
#12
Publicado 24 de Setembro de 2012 - 14:12
Triton, em 24 de Setembro de 2012 - 12:43, disse:
Triton, em 24 de Setembro de 2012 - 12:43, disse:
#13
Publicado 24 de Setembro de 2012 - 16:09
HappyHippyHippo, em 24 de Setembro de 2012 - 14:12, disse:
Falaste em alterações. Uma coisa é fazer um programa de raiz num hex editor. Outra é alterar certas coisas, como alguns opcodes de assembly. Entender a estrutura dos ficheiros é fundamental para certas actividades como reverse engineering, cracking, security research, compiler development, etc.
#14
Publicado 24 de Setembro de 2012 - 16:48
Triton, em 24 de Setembro de 2012 - 16:09, disse:
eu nunca disse para ele não o fazer, até ele ter demonstrado que não tem um objectivo específico.
fazer este tipo de trabalho não é coisa para se fazer de animo leve, porque é necessário um conjunto muito elevado de conhecimentos que pelos posts anteriores (de outros tópicos) ele aparenta não possuir.
#15
Publicado 17 de Outubro de 2012 - 09:10
Triton, em 24 de Setembro de 2012 - 16:09, disse:
Era isso mesmo que eu queria aprender a estrutura dos ficheiros. Queria fazer isso para security research.
Editado por dicas3d, 17 de Outubro de 2012 - 10:55.











