Cara, com todo respeito mas eu sugiro dedicar mais atenção enquanto escreve um artigo. Tá faltando (e muito) coesão no seu texto.
Além disso para um artigo que tem "entendendo como os programas funcionam" não faria sentido... Tipo assim... Explicar como programas funcionam? Porque o artigo todo presume conhecimento prévio do leitor sobre como programas funcionam. O que não faz o menor sentido para um artigo que já começa falando isso:
Cansado de apenas ler sobre desenvolvimento web, como usar trocentos termos que só resultam em OverEngineering ou mais do mesmo? boa leitura.
O que dá a entender que seu público alvo são pessoas que não estão acostumadas a lerem sobre esse tipo de coisa. Logo, supostamente, tem pouco ou nenhum conhecimento prévio sobre o assunto. É isso que o título e o início do artigo dá a entender, mas daí em diante presume um monte de conhecimento prévio do leitor... Isso não faz sentido.
Vou apontar alguns problemas abaixo. Não vou apontar tudo que vi de errado para também não precisar escrever muito.
Você sempre utilizou hacks e nunca soube ( ou será que não ? )
Em todos sistemas operacionais se chama DLL - Dynamic linking library, só muda o sufixo.
O que que em todo sistema operacional se chama DLL? Não tem explicação nenhuma, é só uma frase solta. Parece até que foi recortada de outro texto e por isso perdeu o contexto da frase. Além de que a informação tá errada, só no Windows se chama DLL. O nome genérico é biblioteca compartilhada.
[...]Injetam DLL para obter informações e poder "desenhar" na tela desejada[...]
Não foi dedicada uma linha de texto sequer para explicar o que é injeção de DLL, nem muito menos para explicar como funciona.
Os endereços podem mudar caso o programa atualize.
Mais uma frase solta e completamente fora de contexto. Também sem explicar nada sobre nada.
Olhando nos imports percebe-se que utiliza da v8 e há partes do jogo que pode rodar JS, e isso resultou em um XSS.
Não explicou nada sobre símbolos, bibliotecas dinâmicas, nada... Só jogou a palavra "imports" no ar e presumiu que todo mundo que tá lendo sabe do que tá sendo falado e como funciona.
Entrypoint, resumindo a função main de um programa compilado, porém, em DLL's são bastante diferente.
Primeiro que a frase é mal formulada, o que torna bem difícil de entender que ela está se propondo a explicar o que é "entrypoint". Eu precisei reler umas 3 vezes para entender isso.
Segundo que a explicação está errada. E se você disser que deu uma explicação tecnicamente errada para "facilitar o entendimento"... Aí que eu não vou entender o teu artigo mesmo, amigo. Porque o artigo todo presume conhecimento prévio do leitor sobre como programas funcionam, aí nessa frase presume que ele não tem capacidade técnica suficiente para entender o que é entrypoint? Não faz sentido.
LEA - load effective address
De novo: fora de contexto, sem explicação, nem sequer menciona que é uma instrução. Só joga a sigla "pro ar". Quem não conhece a instrução LEA jamais vai entender isso daqui, jamais.
Descobrimos onde guarda na .rdata, mas isso não é o suficiente, precisamos descobrir em qual endereço essa OFFSET é carregada quando mapeada para memória, então xref para a instrução e se você entende o básico de ASM, existe uma INSTRUÇÃO chamada LEA
De novo o problema de coesão do texto. Mas além disso:
- Não explicou nada sobre seções e segmentos de memória, só mandou um
.rdata
do nada. - Não explica o que é
OFFSET
. - Não explica sobre o que é mapear seções do executável na memória.
- Não diz o que é
xref
.
as Offsets seguem a ordem de que foram chamadas.
De novo: frase solta, fora de contexto, sem explicação.
Enfim, tem vários outros pontos mas acho que é o bastante para entender o que eu quero dizer. Seu artigo tem boa intenção mas o aproveitamento dele é 0 se quem ler não consegue entender do que você está falando. É como falar Russo com quem só fala Espanhol.
Não tem problema escrever artigo presumindo algum conhecimento prévio. Mas você precisa decidir para quem você está escrevendo. Não dá para escrever para leigos no assunto ao mesmo tempo que presume que o leigo entende tudo do assunto, isso não faz sentido.