Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 17:51   #1
sw3n
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 10
По умолчанию debug возможно ли?

Здравствуйте.
Можно ли написать простую программку средствами обычного debug.exe

Вернее вместо прерываний как нибудь вызвать API функцию, допустим MessageBoxA ?
!Не используя ни каких кампиляторов.
sw3n вне форума Ответить с цитированием
Старый 18.01.2010, 19:07   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Можно собрать буквально по байтам На wasm.ru где-то статья была
пыщь
JTG вне форума Ответить с цитированием
Старый 18.01.2010, 19:08   #3
|{ot
Форумчанин
 
Аватар для |{ot
 
Регистрация: 09.03.2008
Сообщений: 127
По умолчанию

http://www.wasm.ru/article.php?article=nocompiler
|{ot вне форума Ответить с цитированием
Старый 18.01.2010, 20:44   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

ИМХО debug.exe применим только для дос программ! API использовать в нем нельзя!
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 19.01.2010, 03:55   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

sw3n
MalCer не прав -- здесь пример, как при помощи debug.exe написать программу, которая выводит MessageBox
Mikl___ вне форума Ответить с цитированием
Старый 19.01.2010, 19:41   #6
sw3n
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 10
По умолчанию

3, огромное спасибо за ссылочку, почитал, вернулся ещё раз в статьи для новичков, ещё раз почитал... И теперь меня мучает вопрос.

Если мыслить логически, Функции API это основная часть операционной системы (может я буду неправ API это аналог- прерываний)

Вобщем если операционка загружена в Оперативную память , то у функций API должен быть свой адрес в этой памяти.

И что если какнибудь вычислить адрес функции MessageBox и передать ей параметры через стэк:
Ну например.

push 0
push 0
push ...
push ...
....
Call [xxx]

Где xxx - это адрес в памяти функции MessageBox.

Реален ли такой расклад дел?

Я только начал увлекатся асмом, сильно не пинайте , пришёл с php =(

Буду рад любым вашим умозаключениям и корректировкам по этому поводу.

Update:
Прошу прощения, может быть это не удачный пример, но чтобы хоть чем то подкрепить свою теорию об адресах Апи в памяти, хочу показать один из эксплойтов с милворма ... Там человек вызывает 2 функции Beep and ExitProcces
http://milw0rm.com/exploits/9078
Прошу прощения за такой линк, просто ненашёл ничего удачней.

Последний раз редактировалось sw3n; 19.01.2010 в 20:47.
sw3n вне форума Ответить с цитированием
Старый 19.01.2010, 20:41   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от sw3n Посмотреть сообщение
Вобщем если операционка загружена в Оперативную память , то у функций API должен быть свой адрес в этой памяти.

И что если какнибудь вычислить адрес функции MessageBox и передать ей параметры через стэк:
Ну например.

push 0
push 0
push ...
push ...
....
Call [xxx]

Где xxx - это адрес в памяти функции MessageBox.

Реален ли такой расклад дел?
всё реально. MessageBox находится а библиотеке user32.dll с вероятностью 99% она всегда будет грузиться по одному и тому же адресу. следовательно и у функции MessageBox тоже почти всегда адрес постоянный. Да и тем более, даже не надо вычислять адрес этой функции, Windows сама за нас всё сделает и занесёт адреса нужных нам функций в таблицу импорта, нам надо будет только воспользоваться этой таблицей.

Последний раз редактировалось rpy3uH; 19.01.2010 в 20:45.
rpy3uH вне форума Ответить с цитированием
Старый 19.01.2010, 21:35   #8
sw3n
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 10
По умолчанию

Тоесть , если я правильно понимаю, вооружившись одним debug.exe

Мы напишем что то типа:

title db 'Hello'
msg db 'Taram-pam-pam'
push 0
push offset msg
push offset title
push 0
Call 0fada4h

Где 0fada4h- адрес функции MessageBox

Запишем всё это в .com файл и запустим , можно будет увидеть МэссаджБокс?

P.S. Боюсь тэстируя сломать свой комп этим кодом, надеюсь на ваш опыт и логику.
sw3n вне форума Ответить с цитированием
Старый 19.01.2010, 22:28   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
P.S. Боюсь тэстируя сломать свой комп этим кодом, надеюсь на ваш опыт и логику.
вы в защищенном режиме...такие ошибки не будут каратся.
Цитата:
Запишем всё это в .com файл и запустим , можно будет увидеть МэссаджБокс?
какой com?
вы хоть статью читали?
вам уже exe надо писать так как exe имеет таблицу импорта.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.01.2010, 03:57   #10
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

sw3n, не мучай мозг, используй компиляторы.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
X64 Debug BioS Общие вопросы C/C++ 6 07.10.2009 20:41
Debug.exe Beginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 31.07.2009 13:55
#define DEBUG Revenholm Общие вопросы C/C++ 1 01.05.2009 19:52
PHP+debug. crazy horse PHP 11 30.07.2008 08:22
1С: debug SQL-запроса. crazy horse SQL, базы данных 0 05.06.2008 08:19