Ir para conteúdo

Livro: Fundamentos de Engenharia Reversa


Fernando Mercês

Posts Recomendados

Queridos amigos,

No dia 12 de Maio de 2018 lançamos este livro online, em português e totalmente gratuito, graças ao apoio de vocês! O livro é de vocês: http://menteb.in/livro

Este tópico é para discutir sobre o livro, sugestões, críticas, correções, etc. Por favor, usem e abusem dele! Toda a comunidade agradece! ?

  • Agradecer 2
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

@Fernando Mercês já pesquisei no Google algum post sobre algo parecido ao um dicionario com palavras: bitwise, bypass e seus significados e não encontrei nada. Acho que seria bem legal ter uma especie de Dicionario de RE no livro Fundamentos de Engenharia Reversa . Eu não sabia o que era "bitwise" (bit-a-bit) ate ler o livro  http://menteb.in/livro

 

Muito obrigado pelo excelente trabalho que você vem desenvolvendo.

Abraço!

Editado por Aof
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois...
  • 1 mês depois...

@Fernando Mercês    "Para enriquecer o aprendizado, é esperado que você digite os comandos com este na console do Python:"

                                           "Para enriquecer o aprendizado, é esperado que você digite os comandos. Como este, no console do Python:"

 

PS: excelente conteúdo!

Editado por asouza
Link para o comentário
Compartilhar em outros sites

O conteúdo é muito bom mas nunca compreendi o porquê de continuar a fazer conteúdo com python 2.7 especialmente quando vai deixar de ter suporte dentro de 1 ano, 

https://pythonclock.org/

nuca fez sentido para mim usar python na versão 2.7, python já vai quase na versão 4, no entanto ainda continua a acontecer fazer conteúdo com uma versão praticamente obsoleta, podemos ver isso a acontecer em livros com edição bastante recente o código vir em python 2.7 e ser cobrado um valor absurdo por esse conteúdo...

Talvez seja uma religião... ?

 

856172720_Capturadeecr_2018-09-22_21-22-09.png.d52d69f88480c9d1b4507c174945e683.png

 

Amen ?

Link para o comentário
Compartilhar em outros sites

Hahaha, @gnoo. Na verdade eu usei a 2.7 simplesmente porque foi a que abriu no meu sistema quando digitei "python". Não é nenhum requisito não. Vou garantir que tudo estará atualizado para a última versão antes do lançamento da versão final do livro. Obrigado por lembrar. ?

Link para o comentário
Compartilhar em outros sites

Correção para numero octal, 012 esta correto entretanto é necessario tambem seu sufixo 'o' se tentar printa-la simplesmente como 012 dara o seguinte erro:

Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
   
Traceback (most recent call last):
  File "python", line 1
    012
      ^
SyntaxError: invalid token
   

Ao usar o sufixo deixando 0o12 ('0octal') você terá o resultado esperando que é 10.

0o12

Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
   
=> 10   
Editado por Sulivan Tavares Leite
correção do print de erro.
Link para o comentário
Compartilhar em outros sites

Correção de português:

 

Hexadecimal

Finalmente o queridinho hexa (para os íntimos); o sistema de numeração que mais vamos utilizar durante todo o livro. O hexadecimal apresenta várias vantagens sobre seus colegas, a começar pelo número de símbolos: 16. São eles: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F, em que os números que eles foram formam são normalmente prefixados com 0x.

(se minha correção não for a correta e o termo realmente for 'foram' favor desconsiderar).

Link para o comentário
Compartilhar em outros sites

14 horas atrás, Sulivan Tavares Leite disse:

Correção para numero octal, 012 esta correto entretanto é necessario tambem seu sufixo 'o' se tentar printa-la simplesmente como 012 dara o seguinte erro:


Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
   
Traceback (most recent call last):
  File "python", line 1
    012
      ^
SyntaxError: invalid token
   

Ao usar o sufixo deixando 0o12 ('0octal') você terá o resultado esperando que é 10.

0o12


Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
   
=> 10   

 

@Sulivan Tavares Leite  essa correção não faz sentido nenhum, és tu quem está a cometer o erro de não seguir os requisitos do livro...

 

No tópico " Antes de começar ",  está bem explicito que para seguir o conteúdo do livro, deve-se utilizar a versão 2.7 do python

https://mentebinaria.gitbook.io/engenharia-reversa/antes-de-comecar

e tu estás a usar ( como é lógico ), a versão 3.6 do python, é dai que esse erro aparece, se tentares introduzir esses dados no python 2.7 esse erro não vai aparecer.

 

Outra questão que na minha opinião deverias ter em conta, é sobre o facto  estares a utilizar um interpretador que NÃO É nativo do python, pelo que eu entendi tu estás a utilizar o repli.it ,  corrige-me se eu estiver errado.... esse código é interpretado por javascript, o que pode algumas vezes dar origem a pequenos erros ... ou talvez não... 

O mais importante disto tudo é que tu, estás a utilizar uma versão do python que não é compativel com o conteúdo do livro. 

Abraço.

 

@Fernando Mercês tens mesmo que atualizar isso ? 

 

Editado por gnoo
Link para o comentário
Compartilhar em outros sites

4 horas atrás, gnoo disse:

 

@Sulivan Tavares Leite  essa correção não faz sentido nenhum, és tu quem está a cometer o erro de não seguir os requisitos do livro...

 

No tópico " Antes de começar ",  está bem explicito que para seguir o conteúdo do livro, deve-se utilizar a versão 2.7 do python

https://mentebinaria.gitbook.io/engenharia-reversa/antes-de-comecar

e tu estás a usar ( como é lógico ), a versão 3.6 do python, é dai que esse erro aparece, se tentares introduzir esses dados no python 2.7 esse erro não vai aparecer.

 

Outra questão que na minha opinião deverias ter em conta, é sobre o facto  estares a utilizar um interpretador que NÃO É nativo do python, pelo que eu entendi tu estás a utilizar o repli.it ,  corrige-me se eu estiver errado.... esse código é interpretado por javascript, o que pode algumas vezes dar origem a pequenos erros ... ou talvez não... 

O mais importante disto tudo é que tu, estás a utilizar uma versão do python que não é compativel com o conteúdo do livro. 

Abraço.

 

@Fernando Mercês tens mesmo que atualizar isso ? 

 

Compreendi. falha minha. Então grato pelo auxilio ?

Correto uso Repl.it (é mais usual para mim utilizar um editor online para salvar meus projetos independente de sistema operacional ou computador, a questão para mim é mais adaptar o código do livro para que funcione no meu ambiente de trabalho e assim minha compreensão do mesmo sera mais ampla)

Todos os exemplos do livro funcionaram para mim com algumas adaptações em questão a ocasião no caso do python o uso de 0o antes de um numero octal foi o suficiente para dar continuidade sem erros.

Editado por Sulivan Tavares Leite
Falto algumas considerações.
Link para o comentário
Compartilhar em outros sites

@Fernando Mercês Uma duvida que fiquei agora é se a versão gratuita de 40 paginas do livro "Descobrindo o linux"  é o suficiente para dar segmento ao livro ou se terei mesmo que comprar a versão completa do livro que se me recordo bem são 928 paginas (diferença exorbitante hein? rsrs).

Link para o comentário
Compartilhar em outros sites

@gnoo corrigido! Era um erro mesmo, obrigado!

@Sulivan Tavares Leite, valeu por alertar. É algo que vou me deparar quando atualizar o livro para a última versão do Python como o @gnoo sugeriu. Confesso que achei a 2.7 mais direto ao ponto, mas fazer o quê?! rs

Quanto ao livro do Eriberto, eu não conheço essa versão gratuita mas pelo número de páginas que você comenta, realmente é muito pouco perto de todo o conteúdo que tem lá. Recomendaria adquirir a versão completa. Além de tudo, é uma baita força para os bons autores nacionais, que estão cada vez mais raros. A maioria traduz conteúdo gringo e muitas vezes traduz mal. Acho que impulsionar a criação autoral de qualidade é sempre uma boa ideia. ?

Abraços, galera!

Link para o comentário
Compartilhar em outros sites

Em 28/09/2018 em 20:37, Fernando Mercês disse:

@gnoo corrigido! Era um erro mesmo, obrigado!

@Sulivan Tavares Leite, valeu por alertar. É algo que vou me deparar quando atualizar o livro para a última versão do Python como o @gnoo sugeriu. Confesso que achei a 2.7 mais direto ao ponto, mas fazer o quê?! rs

Quanto ao livro do Eriberto, eu não conheço essa versão gratuita mas pelo número de páginas que você comenta, realmente é muito pouco perto de todo o conteúdo que tem lá. Recomendaria adquirir a versão completa. Além de tudo, é uma baita força para os bons autores nacionais, que estão cada vez mais raros. A maioria traduz conteúdo gringo e muitas vezes traduz mal. Acho que impulsionar a criação autoral de qualidade é sempre uma boa ideia. ?

Abraços, galera!

Não à de que. 

Pequeno erro encontrado no tópico Assembly :

Se você já estou  estudou portas lógicas, vai perceber que este CI tem 4 portas NAND (AND com saída negada). Cada porta possui duas entradas e uma saída, cada uma delas conectada a seu respectivo pino/perna.

Pretendo adquirir sim. Assim que eu for começar a ler sobre Linux (aproveitarei o embalo dai).

Pequena correção na sessão Assembly - Instruções básicas

O resultado da comparação é configurado no registrador EFLAGS, o que significa dizer que a instrução CMP altera as flags, para que instruções futuras tomem decisão baseadas nelas. Por exemplo, para operandos que foram iguals iguais, a CMP faz ZF=1.

Pequena correção na sessão Assembly - Funções e Pilha

Nos primórdios da computação as funções eram chamadas de procedimentos (procedures). Em algumas linguagens de programação, no entanto, possuem tanto funções quanto procedimentos. Estes últimos são "funções que não retornam nada". Já no paradigma da progamação  programação orientada a objetos (POO), as funções de uma classe são chamadas de métodos.

Excelente livro. ?

Editado por Sulivan Tavares Leite
Adição de correção
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • 2 semanas depois...
  • 1 ano depois...

Excelente trabalho, Fernando

Na seção de cadeias de texto UNICODE:

A string para "Erro" em UTF-16 little endian não deveria ser

45 00 72 00 72 00 6f 00
ao invés de
45 00 72 00 72 00 6f
?

(caso esteja errado, o erro também se repete no exemplo que coloca o null byte no fim da string:
45 00 72 00 72 00 6f 00 00 00
ao invés de
45 00 72 00 72 00 6f 00 00
)

Link para o comentário
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...