Ir para conteúdo

gzn

Membros
  • Total de itens

    25
  • Registro em

  • Última visita

Reputação

2 Neutral

Dados pessoais

  1. Arquivos de um Jogo Talisman Online

    Dê uma lida nestas ferramentas e veja se alguma pode te ajudar.
  2. Endianness

    Interessante. A convenção little começa pelo menos significativo (começa pelo menor, little) e o outro pelo mais significativo (começa pelo maior, big). Do menor endereço até o maior. E como os dados ficam nos registradores? Veja uma explicação na internet: Se alguém quiser comentar mais alguma coisa para esclarecer mais o assunto será bem vindo.
  3. Arquivos de um Jogo Talisman Online

    Diego, eu entendo um pouco suas motivações, mas, não compartilhe arquivos protegidos por direitos autorais. Não sou advogado nem trabalho na área e acredito que você também não. No entanto é necessário ter cautela ao publicar arquivos. Eu só posso te dar dicas genéricas: 1) Não reinvente a roda. Pesquise na internet usando termos em inglês pelo que você está querendo fazer. Se não achou nada... 2) No Unix/Linux você geralmente tem uma ferramenta que detecta padrões em arquivo e diz qual tipo ele é. Pesquise sobre o programa "file". Use-o nos arquivos que quer analisar (pode ser que eles só estejam comprimidos com algoritmo comum e os dados sejam bem inteligíveis depois da descompressão). 3) ``Tente usar algum depurador que você tem familiaridade de usar (talvez o x64dbg? Olly?). Tente achar chamadas intermodulares que façam leitura de dados de arquivo (pesquise a win32 api, biblioteca padrão c, c++, etc.). Ei, note, geralmente jogos possuem programas que protegem a memória contra acesso indevido e também protegem os arquivos. Esteja familiar com estruturas em C e classes em C++ e como elas são acessadas em assembly. .... etc... etc... e etc... Bons estudos
  4. Crackme Level 1

    Como ninguém deu feedback vou dar algumas dicas Ferramentas que você pode usar: * PEID, DIE, etc., só para você saber superficialmente o compilador e se tem algum packer =) * x64dbg limpo (sem plugin nenhum da pra resolver) * uma linguagem de programação que você domine (para resolver o último desafio e descobrir o código fonte) Quem tiver dúvidas eu ajudo.
  5. Ajuda com assembly

    Será que não da pra instala algum "visual studio", criar um projeto win32 console app e pedir para gerar só o assembly? hmmm Bom, eu pesquisei aqui na net e achei esse link, nele tem o seguinte código: .386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib .data HelloWorld db "Hello World!", 0 .code start: invoke StdOut, addr HelloWorld invoke ExitProcess, 0 end start Lembre-se de colocar essas ferramentas na variável de ambiente PATH (você pode criar um batch file pra isso e chamar o cmd.exe), assim você chama de qualquer lugar. ml /c /Zd /coff hello.asm Link /SUBSYSTEM:CONSOLE hello.obj Com o GCC e GAS fica assim: Original em C: 1 #include <stdio.h> 2 int main(){ 3 puts("hello world\n"); 4 return 0; 5 } Em assembly: 1 #i686-w64-mingw32-gcc -S -masm=intel -mpush-args -mno-accumulate-outgoing-args -mno-stack-arg-probe main.c 2 #i686-w64-mingw32-gcc main.s -o main.exe 3 .file "main.c" 4 .intel_syntax noprefix 5 .def ___main; .scl 2; .type 32; .endef 6 .section .rdata,"dr" 7 LC0: 8 .ascii "hello world\12\0" 9 .text 10 .globl _main 11 .def _main; .scl 2; .type 32; .endef 12 _main: 13 lea ecx, [esp+4] 14 and esp, -16 15 push DWORD PTR [ecx-4] 16 push ebp 17 mov ebp, esp 18 push ecx 19 sub esp, 4 20 call ___main 21 sub esp, 12 22 push OFFSET FLAT:LC0 23 call _puts 24 add esp, 16 25 mov eax, 0 26 mov ecx, DWORD PTR [ebp-4] 27 leave 28 lea esp, [ecx-4] 29 ret 30 .ident "GCC: (GNU) 6.4.0" 31 .def _puts; .scl 2; .type 32; .endef gzn@note:~/Downloads/crackme_level1$ file main.exe main.exe: PE32 executable (console) Intel 80386, for MS Windows
  6. Ajuda com assembly

    Perdão @fredericopissarra, quando disse gerado quis dizer compilado. O cygwin tem um sistema de empacotamento particular e algumas coisas tem patches deles, e se não me engano um tempo atrás o mingw deles tinha algumas diferenças em relação ao oficial. Sobre a sintaxe e as instruções que você citou que foram renomeadas isso não muda com a diretiva: .intel_syntax noprefix não? Os mnemonicos pode até ser, mas a sintaxe não. Eu li aqui que o NASM não usa a sintaxe oficial da intel, o MASM sim.
  7. VM pronta para ER no Windows

    Digitei no Google "VM reverse engineering Windows" e achei uma VM pronta para fazer ER no Windows. Segue o link abaixo: https://www.fireeye.com/blog/threat-research/2017/07/flare-vm-the-windows-malware.html Lá o x64dbg já vem com suporte ao python (no caso, infelizmente a versão 2.7).
  8. Crackme - Level 0

    Esse radare é Impressionante @Pimptech. Olha só essa tabela de comparação! Hehe, x64dbg, Ollydbg, etc. nem aparecem. Como eu gosto de controlar as coisas mais pelo teclado do que pelo mouse (meu negócio é shell rs), esse radare tem a filosofia certa. Por enquanto vou mexer mais no x64dbg, até pegar as coisas básicas, depois eu me aventuro com radare. Valeu, abs amigo!
  9. Keygen genérico

    @Fabiano Furtado você ta aprendendo bem C, parabéns hehe Próximo passo Utilizar alocação dinâmica (malloc, calloc, etc.) para um tamanho arbitrário de chave. Também seria uma boa fazer das duas diretivas: #define key_size 10 // size of the key in characters #define key_sum 914 // arbitrary number: sum of ASCII characters for key validation serem parâmetros na linha de comando (pode ser pelo argv ou você lê com fgets, scanf, etc.).
  10. Keygen genérico

    #include <stdio.h> int main(){ printf("sizeof(unsigned char): %d\n", sizeof(unsigned char)); printf("sizeof(unsigned int): %d\n", sizeof(unsigned int)); return 0; } $ gcc main.c && ./a.exe sizeof(unsigned char): 1 sizeof(unsigned int): 4 Para guardar caracteres ASCII 1 byte é o suficiente. Se fosse unicode (até mesmo UTF-8), ai teria que reservar pelo menos 2 bytes (se quiser por exemplo, caracteres com acento, etc.). Obs.: já vi na internet que o int varia conforme a arquitetura que a gente compila como alvo (target).
  11. Ajuda com assembly

    Se for só para aprendizado mesmo você pode fazer como eu, usar as ferramentas do GNU toolchain pra windows (mingw). Até porque se falamos de assembly, temos que ter em mente que não vamos criar um aplicativo nessa linguagem, isso não seria trivial rs =) Qual a vantagem do NASM e do MASM se temos o GAS tanto pra windows com pra linux? Essa é uma pergunta que tenho na minha cabeça... hmmm O kit de desenvolvimento com GNU toolchain já vem com linker e até compilador de C. Com o GNU GAS se você não sabe fazer algo você pode gerar um assembly a partir do C e ver como se faz uma chamada específica, etc. Com esses outros aí você sempre está dependente de outras ferramentas... Fora que se você aprender a usar o GAS vai saber como usá-lo tanto no Windows como no Linux. Bem, podem haver limitações de usar o GAS, mas acho que para os passos iniciais talvez não tenha problemas, não é verdade? Eu uso o mingw gerado pelo projeto cygwin: i686-w64-mingw32-gcc -S código.c -o código.s Aí eu tiro mais ou menos minha dúvida de como se reproduz algo de C para assembly. O único problema até o momento que eu encontrei foi que o mingw gera símbolos no formato DWARF e o x64dbg só aceita PDB eu acho. P.S.: tem uma ferramenta desatualizada que tenta fazer parte desse trabalho de conversão (não testei).
  12. Crackme Level 1

    Esse crackme é bem simples, ele tem uma etapa basicamente idêntica ao crackme 0 do @Pimptech, porém, tem mais dois desafios simples. Como eu acredito que sempre seria bom publicar o código fonte (até para ver se a intenção do usuário do fórum não era mesmo prejudicar o computador de alguém), estou publicando o código fonte só que ele está criptografado (uma das técnicas mais simples e que nem é segura rs). Se você soube resolver o último desafio você fez isso. Lembre-se de colocar os dois arquivos na mesma pasta. Obs.: galera, sou iniciante, não exijam muito de mim kkk crackme_level1.c crackme_level1.exe
  13. Crackme - Level 0

    Obrigado pelas sugestões @Pimptech. Só só que eu dei uma lida lá na página desses projetos de plugin e não soube achar alguma funcionalidade para comparar dois binários em nível de assembly. Use case: a MS lança um patch pra um binário (exe, dll, etc), eu tenho a versão antiga desse binário e quero comparar com a nova versão (a que recebeu o patch) em nível de assembly para tentar encontrar a vulnerabilidade/erro que foi corrigida. Eu estou começando a aprender assembly e ER, pode parecer ousado já ir procurando estas coisas, mas já quero ir conhecendo as ferramentas mais comuns para essas tarefas.
  14. Solicitação de uso de processamento

    Coloquei esse vídeo no momento em que ele fala sobre a mineração no site. gzn@note:~/papobinario$ youtube-dl.exe --sub-lang pt --write-auto-sub --skip-download https://www.youtube.com/channel/UCuQ8zW9VmVyml7KytSqJDzg gzn@note:~/papobinario$ grep minera *.vtt Curso de Engenharia Reversa Online - Aula 4 - Strings de texto-VuPWeTZoVLs.pt.vtt:fazendo<c.colorE5E5E5><00:44:16.170><c> mineração</c><00:44:16.740><c> a</c><00:44:16.800><c> gente</c><00:44:16.980><c> consegue</c></c> Curso de Engenharia Reversa Online - Aula 4 - Strings de texto-VuPWeTZoVLs.pt.vtt:mineração<c.colorE5E5E5><00:44:57.220><c> não</c><00:44:57.820><c> ajuda</c></c><c.colorCCCCCC><00:44:58.210><c> pra</c><00:44:58.330><c> gente</c><00:44:58.470><c> seguir</c></c> Pythonicos - Aula 02 - Sobre Python-AH7uV6TVIz4.pt.vtt:então<00:07:22.380><c> tudo</c><00:07:22.920><c> isso</c><00:07:23.250><c> baseado</c><c.colorE5E5E5><00:07:23.550><c> na</c><00:07:23.910><c> mineração</c></c>
  15. Crackme - Level 0

    Ae galera, eu to procurando aqui algum plugin, alguma coisa para comparar dois executáveis no x64dbg, mas não achei nada até agora... Parece que para esse IDA pro (um caríssimo debugger para engenharia reversa) tem um tal de BinDiff e um Diaphora que faz isso. Mas e pro x64dbg (debugger dos pobres hehe)? Eu aqui para quebrar o galho to usando o diff do git, ex.: i686-w64-mingw32-gcc main.c -S -o original.asm i686-w64-mingw32-gcc main_modificado.c -S -o modificado.asm git diff --no-index --word-diff original.asm modificado.asm Obs.: se você quiser copiar o disassembly do x64dbg vai ter que copiar na mão (selecionar toda área .text) e colar em um arquivo e filtrar os dados (pelo menos não descobri outra forma na GUI que auxiliasse nisso). Ou, se você não se importa pode usar o "objdump -d arquivo.exe".
×