====== Tester des codes hexadécimaux pour les chaînes de noms de fonctiond'api pour shell ======
:!: Vra c de travaux en cours de progrès boréalique :!: **DOIT ÊTRE COMPLÉTÉ**
Sources de départ :
* Windows Shellcoding x86 – Calling Functions in Kernel32.dll – Part 2
* https://0xdarkvortex.dev/index.php/2019/04/01/windows-shellcoding-x86-calling-functions-in-kernel32-dll-part-2
* Puis "quick interactive python way to get hex codes for api function name strings for shellcoding purposes" (tweet https://twitter.com/h0mbre_/status/1183800666449469440) : https://0xdarkvortex.dev/wp-content/uploads/2019/05/string_conv.png
===== En python =====
`--> python3
Python 3.6.8 (default, Oct 7 2019, 12:59:55)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import textwrap
>>> import binascii
>>> textwrap.wrap((binascii.hexlify(b'blabla'[::1]).decode()), 8)
['626c6162', '6c61']
Avec :
* ''textwrap'' : Encapsulation et remplissage de texte https://docs.python.org/fr/3.7/library/textwrap.html
* '' binascii.hexlify(data)'' : Renvoie la représentation hexadécimale du binaire ''data''. Chaque octet de ''data'' est converti en la représentation 2 chiffres correspondante. L’objet octets renvoyé est donc deux fois plus long que la longueur de ''data''.
===== Bash =====
`--> printf blabla | rev | xxd -p | fold -w8
616c6261
6c62
Avec
- ''printf'' : format and print data
- ''rev'' : reverse lines of a file or files
- ''xxd'' : make a hexdump or do the reverse et ''-p'' output in postscript continuous hexdump style. Also known as plain hexdump style.
- ''fold'' : wrap each input line to fit in specified width eet ''-w8'' use WIDTH columns instead of 80
Nous avons besoin de les situer (timestamp) en ''0x'' pour les rendre utilisbales si compilations
`--> printf blabla | rev | xxd -p | fold -w8 | ts 0x
0x 616c6261
0x 6c62
Utilisions ''ts'' présent dans [[https://joeyh.name/code/moreutils|moreutils]]
? et ''tr'' qui permet de convertir une chaîne de caractères, un utilitaire ''UNIX'' pour traduire, supprimer ou presser des caractères répétés. Il lira à partir de ''STDIN'' et écrira à ''STDOUT''.
* http://www.linux-france.org/article/memo/node10.html
* https://www.thegeekstuff.com/2012/12/linux-tr-command/
printf blabla | rev | xxd -p | fold -w8 | ts 0x | tr -d ' '
0x616c6261
0x6c62
====== Cas pratiques ======
====== Vrac ======
* Linux kernel api documenation https://www.kernel.org/doc/htmldocs/kernel-api/