Jump to content
Leandro Fróes

Formato PE

 Read 4 minutes

Recommended Posts

 Read less than a minute

Fala @HelderPereira. Os primeiros 64 bytes de um arquivo no formato PE pertencem ao DOS-Header. Os primeiros passos do loader são:

  1. Checar se os dois primeiros bytes do arquivo são iguais à "MZ".
  2. Ir até o campo e_lfanew do DOS-Header (offset 0x3c) e ler a DWORD dentro dele, isto é, os 4 bytes deste campo.
  3. Pular para o offset lido e ver se ele é igual à "PE\0\0", ou seja, a assinatura PE.

Notou alguma coisa? O campo e_lfanew fica dentro do DOS-Header e ele possui o offset para a assinatura PE. Caso ela não exista, o arquivo é considerado um "não PE", do contrário, o loader continua seu trabalho analisando os outros cabelhos.

Obrigado pela pergunta e qualquer coisa só mandar bala.

Abs.

 

Share this post


Link to post
Share on other sites
 Read less than a minute

Estou usando o Dev C++ 5.1.1, quando eu copio seu código pra ele e compilo aparece os seguintes erros. (só fiz mudar a posição das aspas, o que é pra consertar dps eu n sei como)

#include <stdio.h>

int main(void){

printf("Mente Binaria eh foda! =)"\n);

return 0;

}

 

SharedScreenshot.jpg

SharedScreenshot.jpg

Share this post


Link to post
Share on other sites
 Read less than a minute
1 hora atrás, Quer Vinho disse:

Estou usando o Dev C++ 5.1.1, quando eu copio seu código pra ele e compilo aparece os seguintes erros. (só fiz mudar a posição das aspas, o que é pra consertar dps eu n sei como)

#include <stdio.h>

int main(void){

printf("Mente Binaria eh foda! =)"\n);

return 0;

}

 

SharedScreenshot.jpg

SharedScreenshot.jpg

Achei o problema [printf("%s","Mente Binaria eh foda! =)\n" );] tem que ter ["%s"] no inicio

 

Share this post


Link to post
Share on other sites
 Read less than a minute

@Quer Vinho Opa, na verdade você esqueceu de colocar o \n (isto é, o caracter que representa uma nova linha) dentro das aspas para que o printf interprete o resultado propriamente. Por padrão a printf entende o que você passar como primeiro parâmetro pra função como um const char *, então neste caso você não precisa especificar %s como o "formatador":
 

printf("Mente Binaria eh foda! =)\n"); 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...