• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dicas3d

Programação num hex editor

15 posts in this topic

Olá.

Como faço para programar num hex editor como Frhed?

Onde posso encontrar um manual sobre a sintaxe?

0

Share this post


Link to post
Share on other sites

o está escrito no ficheiro depende sempre da funcionalidade que este tem

0

Share this post


Link to post
Share on other sites

Então mas por onde devo começar a aprender este tipo de programação?

0

Share this post


Link to post
Share on other sites

ninguém programa dessa maneira .... seria como programar só com as teclas {0, 1, 3, 4, 5, 6, 7, 8, 9, 0, a, b, c, d, e, f}

não faz sentido.

esses editores existem para visualizar(editar dados binários, não para codificação

0

Share this post


Link to post
Share on other sites

Mas sendo assim então como começar aprender a alterar esse tipo de dados?

Edited by dicas3d
0

Share this post


Link to post
Share on other sites

depende do tipo de ficheiro que queres alterar !!

o está escrito no ficheiro depende sempre da funcionalidade que este tem

0

Share this post


Link to post
Share on other sites

Vejamos então o caso dos ficheiros executáveis do windows(.exe)?

Como aprender a alterar esse tipo de dados neste tipo de ficheiros?

Edited by dicas3d
0

Share this post


Link to post
Share on other sites

Aprender a alterar um pouco de tudo porque estou a tentar aprender por curiosidade. Para ser especifico quero começar pelo mais fácil para 1 iniciante.

0

Share this post


Link to post
Share on other sites

se é para aprender aconselho a te virares para outras bandas, fazer este tipo de alteração é muito desaconselhado e normalmente desnecessário.

0

Share this post


Link to post
Share on other sites

se é para aprender aconselho a te virares para outras bandas, fazer este tipo de alteração é muito desaconselhado e normalmente desnecessário.

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).

0

Share this post


Link to post
Share on other sites

É desaconselhado porquê e por quem?

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.

engraçado, respondeste à tua própria pergunta

0

Share this post


Link to post
Share on other sites

engraçado, respondeste à tua própria pergunta

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.

0

Share this post


Link to post
Share on other sites

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.

exactamente.

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.

0

Share this post


Link to post
Share on other sites

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.

Só hoje pude vir responder.

Era isso mesmo que eu queria aprender a estrutura dos ficheiros. Queria fazer isso para security research.

Edited by dicas3d
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now