Нужно отладить код в отладчике (на бумаге уже не справляюсь), не могу загрузить его ни в какой отладчик, 16 разрядный код отлаживал софтайсом, там просто, а на 32 разрядный код, ругаютя все отладчики которые только пробовал и оли и софт айс (остальные названия непомню с психу удалил всё нахрен....) пишут файл не является PE и загружать напрочь отказуются, попытки засунуть в чужую программу свой код, в окне отладчика, не увенчались успехом, нужно пошагово проследить регистры в коде, работаю на виндовс, свой код запускаю с жёсткого диска напрямую, на втором компе.
а Вы чем программу собираете? если они говорят что не являются PE файлом, значит они таковыми не являются.
Хекс редактором ..., пишу алгоритм на асме, перевожу по таблицам в маш код, сохраняю в bin формате, потом с помощю френзи копирую посекторно на ж/д
я хочу написать хекс редактор и отладчик, работающие без ос, в котором буду развивать идею дальше, щас застрял на драйвере клавиатуры гдето ошибка и никак не могу найти... в bosh есть отладчик надо пробнуть....
Не нашол я в боксе никакого отладчика...., а с эмуляции ж/д вобще запустить мой код он отказался, возможно ругается на отсутствие таблиц разделов, но мне то они ненужны...
я в смысле, скомпилировать как PE, а потом засуну в оли, но щас читаю про вставки ассемблерные и не вижу возможности засунуть опкодами, а инструкции он наверняка перекомпилит
ааа, а я подумал это какаято хитрая уловка, так вот пишут на форумах что низзя так, тут http://www.xakep.ru/magazine/xs/071/040/1.asp написано "Например, в inline-ассемблере Visual C++ нет никаких средств для объявления переменных, поэтому про привычные DB, DW, DD, DQ, DT, DF, DUP и THIS можно забыть."
1. Берем пакет MASM32. а) в папке установки лежит утилита bintodb.exe - открываем любой файл (даже ваш двоичный, который никуда не грузится) и получаем текстовый для вставки: db 01, 34, 56, 80, 114, 96... б) пишем маленький файл, примерно следующий: Код (Text): .386 .model flat, stdcall option casemap :none ; case sensitive include \masm32\include\windows.inc includelib \masm32\lib\kernel32.lib .code start: push 0 call ExitProcess end start в) вставляем содержимое из bintodb в наш файл после метки start (но до команды push 0). Компилируем - получаем ПЕ-формат, с вашим кодом внутри. Грузим в отладчик (навряд ли стоит запускать результат без отладчика...) и исследуем. Или 2. Берем пакет FASM. а) пишем файл примерно такого содержания: Код (Text): include 'win32ax.inc' .code start: file 'myfile.bin' invoke ExitProcess,0 .end start б) сохраняем исходник в одну папку с бинарником (чтобы пути не прописывать). Или наоборот, указываем путь к myfile.bin, тогда сохраняем куда угодно. в) компилируем и опять-таки запускаем в отладчике и исследуем
Debris вроде бы вот способ как это обойти Turbo Pascal до версии 5.5 (или даже 6.0) не имел встроенного ассемблера (конструкций типа asm ... end), машинный код можно было вставлять лишь с помощью заявлений inline($90,$90, ...);
неужели придётся PE шапку вручную собирать по байтам ппц, а про софт айс пишут может отладить любой код....,брехня!
Debris Посмотри "Сам себе Iszelion" там добавление РЕ-заголовка и ресурсов автоматизировано, ничего страшного, глаза боятся -- руки делают