Вопрос № 85781: Ладно, спрошу по-другому. Есть программа. Надо ее хотя бы скомпилировать в fasm'e. Но не получается, он ругается сразу на первую же строку. Что надо исправить? В Assembler Constrictor'е (AC) компилируется. Но когда запускаешь экзешник, винда сообщает...Вопрос № 85788: Доброго времени суток! Для консольного приложения на ассемблере win32(masm32) головная программа PRG.ASM вызывает 3 отличающихся только именами подпрограммы
(PPG0001.ASM ...2...3) , каждая из которых должна вывести на экран тестовый текст. Но правиль...Вопрос № 85810: Здравствуйте уважаемые эксперты ! Спасибо за ответ на предыдущий вопрос ! Уменя возник еще один вопрос. Как считать с уже запущеной программы определенные участки памяти ? Спасибо !...
Вопрос № 85.781
Ладно, спрошу по-другому. Есть программа. Надо ее хотя бы скомпилировать в fasm'e. Но не получается, он ругается сразу на первую же строку. Что надо исправить? В Assembler Constrictor'е (AC) компилируется. Но когда запускаешь экзешник, винда сообщает "программа выполнила". Почему? Сам AC использует TASM. Этот же екзешник вполне хорошо отлаживается Turbo Debugger'ом, но им я пользуюсь плохо. Olly Debugger не хочет работать с этим exe-файлом.
Приложение:
Отправлен: 06.05.2007, 21:50
Вопрос задал: Blackie (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Blackie!
В fasm'e синтаксис отличается от masm'a и tasm'a, потому и ругается.
Смотрите приложение, увидете отличие синтаксиса.
Olly Debugger- 32 битный отладчик(а у Вас программа 16 бит), потому и отказывается.
Попробуйте W32Dasm(он понимает и 16 и 32 бита).
Удачи!
Приложение:
--------- И только наступив на грабли мы преобретаем драгоценный опыт!
Доброго времени суток! Для консольного приложения на ассемблере win32(masm32) головная программа PRG.ASM вызывает 3 отличающихся только именами подпрограммы (PPG0001.ASM ...2...3) , каждая из которых должна вывести на экран тестовый текст. Но правильно его выводит только первая, вторая, похоже, выводит только кусок текста а третья не выводит вообще. Помогите найти ошибку.
Приложение:
Отправлен: 06.05.2007, 22:32
Вопрос задал: Voronkov (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Voronkov!
Ошибка в параметрах.
Ф-я GetStdHandle возвращает handle консоли в EAX
Первая PPG0001 использует EAX и портит значение!
Исправить можно, например, так:
1)сохранить в переменной и передавать параметром,
2)сохранить, к примеру, в ESI и передать первым параметром ESI
(регистры EBX, EDI, ESI стандартными ф-ми не портятся) ,
3)в PPG0001 и других еще раз сохранить и восстановить EAX
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 07.05.2007, 12:12
Вопрос № 85.810
Здравствуйте уважаемые эксперты ! Спасибо за ответ на предыдущий вопрос ! Уменя возник еще один вопрос. Как считать с уже запущеной программы определенные участки памяти ? Спасибо !
Отвечает: IceWolf
Здравствуйте, шитов игорь владимирович!
Функция ReadProcessMemory:
BOOL ReadProcessMemory(
HANDLE hProcess, // хэндл процесса
LPCVOID lpBaseAddress, // откуда читаем
LPVOID lpBuffer, // куда читаем
DWORD nSize, // сколько байт читаем
LPDWORD lpNumberOfBytesRead // адрес переменной, куда будет занесено количество прочитанных байт
);
Советую обзавестись справочником по WinAPI:кратко, но по-русски(http://develab.narod.ru/ http://w32api.narod.ru/), больше, но на английском http://cracklab.ru/download.php?action=get&n=NjA1
Также идеь в комплекте с Delphi, VS, etc.
Удачи!
Удачи!
--------- Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 8-ой класс)
Ответ отправлен: 08.05.2007, 17:53