Un émulateur et un désassembleur Risc-V , couteaux suisses du hacker

Posté par  . Édité par Nils Ratusznik et Julien Jorge. Modéré par bobble bubble. Licence CC By‑SA.
22
13
juin
2023
Matériel

Puisque le sujet des processeurs a été récemment abordé avec une belle critique du Risc-V, voici deux outils pour s'amuser avec l'assembleur du processeur Risc-V sans s'inscrire sur une liste d'attente pour s'en procurer un.

rv, un émulateur Risc-V en C89

rv est le petit défi personnel de l'auteur qui voulait éprouver son C89. En 600 lignes de code il vous propose un émulateur un peu rustique mais fonctionnel. Si vous ne comprenez pas pourquoi c'est du C89, le Readme est éclairant, et si vous critiquez tous les défauts du C89 le Readme est d'accord avec vous.

RISC-V dissassembler, un désassembleur pour compléter rv

Indispensable pour compléter l'émulateur, voici le désassembleur de poche. Rustique et minimaliste comme il se doit. L'auteur vient de proposer ses services à l'auteur de rv sur Hacker News : les deux projets pourraient s'unir. Affaire à suivre.

Journal Un utilitaire pour formater la sortie de avr-objdump

Posté par  . Licence CC By‑SA.
16
4
juil.
2022

… ou l'heure de l'auto-promo a sonné :-D.

Bonjour à tous.

Un de mes passe-temps est le développement embarqué, notamment avec les micro-contrôleurs et surtout ceux de Atmel (aujourd'hui Microchip). J'ai toujours été quelque peu insatisfait de la sortie de l'outil avr-objdump. En effet, ce dernier, s'il demande le type de processeur (plus exactement l'architecture), est incapable de sortir autre chose que les adresses mémoire des registres au lieu de leur nom.

Alors, ça me chatouille. Ou ça me (…)

Sortie de radare2 0.9.6

40
12
nov.
2013
Science

Si vous avez déjà utilisé GDB et objdump pour analyser des binaires dont vous n'aviez pas les sources, vous avez déjà dû pester. En effet, les outils GNU ne sont pas vraiment fait pour ça. Mais que faire d'autre ? Céder aux sirènes d'IDA Pro ? Que nenni, car voici la nouvelle version de radare2 !

Radare2, c'est un framework complet pour analyser des binaires :

  • Multi-architectures : GNU/Linux, Android, *BSD, OSX, iPhoneOS, Windows{32,64} et Solaris
  • Multi-platformes : 8051, x86{16,32,64}, dalvik, avr, arc{4,compact}, arm, aarch64, c55x+, java, powerpc, sparc, mips, bf, pe{32,64}, te, [fat]mach0{32,64}, elf{32,64}, bios/uefi, dex and java classes
  • Scriptable en : Vala, Go, Python, Guile, Ruby, Perl, Lua, Java, JavaScript, sh, ..
  • Un éditeur hexadécimal
  • Un (dés)assembleur (récursif !), avec une coloration syntaxique
  • Un débogueur natif, mais il est possible d'utiliser GDB en backend, ou un débogueur brainfuck !
  • La possibilité d'afficher des données sous de multiples formats: int, float, désassemblé, timestamps, …
  • La possibilité de faire des recherches par patterns, des checksums, …
  • Un support des disques, processus, fichiers et flux.
  • Du binary diffing (comparaison de binaires), que ce soit sous forme traditionnelle, ou sous forme de graphes
  • Analyse de code, que ce soit niveau opcodes, blocks, ou fonctions
  • Une machine virtuelle basique, permettant d'émuler du code
  • Une interface web !