Outils utiles pour développeur

58
3
mar.
2017
C et C++

Le but de cette dépêche est de recenser quelques outils utiles pour les développeurs (pas uniquement C et C++) et de donner accès à des ressources intéressantes pour leur prise en main.

Tout d’abord comment définit‐on un « outil utile » ? Ce sont des logiciels (libres, c’est mieux) qu’il n’est pas obligatoire d’utiliser mais qui permettent de gagner en productivité (ou de moins se prendre la tête avec un bogue). Ces outils sont utilisables indépendamment, mais utilisés ensemble peuvent former un tout qui donne les fonctionnalités d’un environnement de développement intégré.

Il est fort probable que pour certains cette dépêche vienne enfoncer des portes ouvertes. Mais pensez aux nouveaux pour qui elle sera, peut‐être, profitable.

Nouvelles versions logicielles du projet GNU juin et juillet 2017

Posté par (page perso) . Édité par Davy Defaud, mathrack et palm123. Modéré par ZeroHeure. Licence CC by-sa
53
22
août
2017
GNU

Le projet GNU publie tous les mois une liste de versions logicielles publiées. Jetons‐y un coup d’œil pour découvrir de nouveaux logiciels inconnus (de moi), des infâmes bogues disparus ou les promesses de solutions à tous nos besoins : soit des dizaines de nouvelles versions annoncées allant de la corrective mineure à la version attendue depuis des années ; et l’on va donc parler de acct, auctex, automake, binutils, cgicc, dr-geo, freeipmi, gama, gcc, gdb, glpk, gnuastro, gnucash, gnuhealth, gnuhealth-control, gnupg, gnutls, grep, gsl, guile-cv, guile-gnome, libextractor, libffcall, libgcrypt, libidn2, libmicrohttpd, libtasn1, linux-libre, moe, motti, nano, parallel, screen, taler, texinfo, tramp et unifont.

Journal Disséquer du binaire sous linux

46
27
nov.
2013

J'aime bien le reverse, j'aime bien linux, j'aime bien lire de l'hexa et j'aime bien les crackmes.

Pour reverser, on a tout ce qu'il faut sous linux.

readelf:
Toujours pratique au début pour connaître un peu mieux le binaire, il affiche pas mal d'infos intéressantes, comme l'entry point, les sections etc.. ex:
readelf -s /bin/ls

objdump:
Indispensable. objdump sait désassembler un binaire complet et afficher les offsets/mnémoniques et instructions. ex:
objdump -d /bin/ls

gdb:
Faut il encore le présenter. Tous (...)

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 !

Journal Disséquer du binaire - retour d'expérience

Posté par (page perso) . Licence CC by-sa
40
28
jan.
2014

Yeah, me revoilà!

La dernière fois, je vous parlais de dissection de binaire. Du temps a passé, et je reviens faire un petit tour sur linuxfr pour donner mes retours d'expérience. Sans plus attendre, les outils kidéchirent sont:

-gdb : bah oui, c'est vraiment incontournable. Mais gdb à poil, c'est chiant. Je conseille à tout le monde de prendre le plugin http://reverse.put.as/gdbinit/. C'est le genre de trucs que j'adore: la conf par défaut juste marche. Pas besoin de (...)

Journal Un fonds pour la GNU Toolchain

Posté par (page perso) . Licence CC by-sa
37
28
mar.
2017

Le Free Software Foundation accepte maintenant des donations spécifiquement pour la GNU Toolchain : GCC, GDB, la glibc, les Binutils, etc.

Toutes les informations ici.

En tant que programmeur C, j’utilise certains de ces outils tous les jours et, comme je n’achète jamais de programmes, je fais parfois une donation pour les projets qui me tiennent hacker. Mais la plupart des distributions GNU/Linux dépendent fortement de la GNU Toolchain, donc, en tant que simple utilisateur, ça vaut aussi la (...)

Journal ZeroMQ et les mangoustes

Posté par (page perso) .
34
10
nov.
2012

Sommaire

On m'a récemment demandé d'expliquer pourquoi je trouve que ZeroMQ est un sujet de rigolade. En guise d'introduction, j'aimerais préciser qu'un panel d'experts concertés sur le sujet ont eu des réactions similaires lorsqu'ils ont été exposés à deux lignes de ZeroMQ :

< Krunch> 1149 event.data.connected.addr = (char *)addr_;
< Krunch> 1150 event.data.disconnected.fd = fd_;
< Krunch> avec event.data qui est un union
< s> ahah
< n> nice
< n> http://i.imgur.com/pejxB.gif

(...)

Utiliser colout pour colorier tout ce qu'affiche GDB

Posté par (page perso) . Édité par Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa
34
17
oct.
2014
Ligne de commande

Je sais ce que vous pensez : vous avez beau essayer d'utiliser des interfaces graphiques avec le débogueur GDB (GNU Project Debugger), vous finissez toujours par revenir à la bonne vieille ligne de commande, qui seule vous permet de ressentir une flamboyante puissance et une incandescente rapidité d'action. Dans le même temps, vous aimeriez bien que certaines informations importantes soient agrémentées d'un rouge pétant qui saute aux yeux. Comme je vous comprends. Fort heureusement, GDB est un logiciel complètement hackable, ce qui va me permettre d'exaucer vos vœux les plus ardents.

Il est en effet possible d'attacher des hooks à chaque commande, et d'y appeler des commandes shell. Afin d'ajouter notre touche de carmin, il suffit donc de récupérer la sortie de la commande et de la faire passer dans un colorisateur écarlate. C'est possible, car GDB permet de logguer tout ce qui se passe et qu'Unix a eu la bonne idée d'inventer les pipes nommés.
Pour ajouter la touche de pourpre, un colorisateur capable de gérer facilement des expressions régulières est nécessaire, je vous suggère colout.

La suite de la dépêche vous donnera un exemple de fichier de configuration à utiliser pour ajouter votre touche d'andrinople à votre propre système.

Forum général.petites-annonces envie de faire du C++11 au sein d'une dream-team, dans cadre idyllique, tout en étant payé ?

Posté par . Licence CC by-sa
18
26
nov.
2013

Hello world,

On recrute encore pour notre équipe R&D !
Ayant eu de bonnes candidatures depuis linuxfr mes précédentes fois, je ré-ré-itère :) (je dois en être à la 3° vague de recrutement depuis bientôt 3 ans). Cette annonce ressemble donc beaucoup aux précédentes, avec quelques updates. N'hésitez pas à faire suivre à vos amis non linuxiens !

En 3 lignes :

  • R&D C++11 sous linux
  • éditeur d'un logiciel d'analyse de binaires exécutables
  • 2 postes R&D C++11 ouverts (dont 1 particulièrement orienté (...)

Forum général.petites-annonces envie de faire du C++14/python au sein d'une dream-team, dans cadre idyllique, tout en étant payé ?

Posté par . Licence CC by-sa
15
25
nov.
2015

Hello world,

On recrute encore pour notre équipe R&D !
Ayant eu de bonnes candidatures depuis linuxfr mes précédentes fois, je ré-ré-ré-itère :) (je dois en être à la 4° vague de recrutement depuis bientôt 5 ans). Cette annonce ressemble donc beaucoup aux précédentes, avec quelques updates. N'hésitez pas à faire suivre à vos amis non linuxiens !

En 3 lignes (+3 bonus) :

  • R&D C++ sous linux, avec du python aussi
  • éditeur d'un logiciel d'analyse de binaires exécutables
  • plusieurs postes ouverts
  • (...)

Forum Programmation.c GDB : comment afficher le module contenant une fonction dans la pile d'appel ?

Posté par . Licence CC by-sa
4
24
juin
2014

Bonjour,

Je rencontre une difficulté avec GDB en voulant déboguer un programme. La commande bt permet d'afficher la pile d'appel quand le programme est mis en pause. Parfois, l'affichage retourne les noms des fonctions, parfois, le nom du module (exe ou so) dans lequel se trouve la fonction. Ce que j'aimerais, c'est pouvoir afficher les deux, car je suis parfois perdu pour déterminer les modules impliqués.

Par exemple j'ai :

#0 0x00001234 in une_fonction() ()
#1 0x00f00500 in une_autre_fonction() ()
(...)

Forum Programmation.autre Substitut de ddd

Posté par . Licence CC by-sa
3
5
oct.
2017

Bonjour,

Jusqu'à il y a peu, j'utilisais ddd pour débugger mes programmes.

Or ddd ne supporte pas le verrouillage numérique et les caractères accentués en UTF-8.

Je lui cherche un substitut.
J'ai un peu gratté du coté des greffons de geany sans beaucoup de succès.
Et, pour des raisons pédagogiques, je préfèrerais une application indépendante (une action <=> un outil, sinon mes étudiants confondent tout :-)).

Que me suggèreriez-vous ?

Cordialement

Dominique

Forum général.petites-annonces TETRANE 2/3: multiples offres d'emplois / stages : Ingé Tests&Validation (QA)

Posté par . Licence CC by-sa
1
10
fév.
2017

cf l'annonce que nous venons de publier pour la description rapide de notre société et les infos communes à tous nos postes

Postes Ingé Tests&Validation (QA)
Au sein de l’équipe R&D TETRANE, vous concevez les environnements et plans de tests, exploratoires et/ou automatisés, permettant d’assurer le haut niveau de qualité des solutions Tetrane. Vous implémentez les tests des nouvelles versions de manière efficiente. Ainsi vous influencez directement les produits par vos remontées de correctifs et de nouvelles fonctions à (...)

Forum général.petites-annonces TETRANE 1/3: multiples offres d'emplois / stages : Ingé R&D C++

Posté par . Licence CC by-sa
1
10
fév.
2017

TETRANE est un éditeur de logiciel français créé en 2011, l'équipe comporte actuellement une dizaine d'ingés. Nous sommes basés à Mâcon (50m de la gare, plusieurs ingés habitent à LYON). Notre produit REVEN, basé sur notre simulateur de CPU, aide au debugging avancé et au reverse-engineering. REVEN est actuellement utilisé par des équipes d'experts du monde de la défense sur 4 continents.
Forts de notre succès, nous souhaitons renforcer l'équipe R&D pour adresser le marché des éditeurs de logiciels civils (...)