Сейчас на форуме: ut2004, vsv1 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› С чего начать?
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 августа 2006 17:04
· Личное сообщение · #1

Вот подумал если писать программу изучать язык можно быстрей.Дак у меня вопрос. Каккую можно написать программу на фасме




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 27 августа 2006 21:38
· Личное сообщение · #2

патчген



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 27 августа 2006 23:07
· Личное сообщение · #3

Lukar1, только тебе придётся параллельно изучать Win32 API и PE-формат.
Когда патчер сделаешь, попробуй какую-нибудь штуковину и интересной логикой сотворить, например консольный скринсейвер "Матрица".
А выглядеть он может так (этот на C++ сделали):


08c1_27.08.2006_CRACKLAB.rU.tgz - matrix.scr

-----
Всем привет, я вернулся




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2006 15:51
· Личное сообщение · #4

Спасибо. Попробую. А для чего PE формат знать? И еще вопрос если можно.
Не могу вьехать че делаеться когда я делаю так:
push ebx esi edi
бля бля бля
pop ebx esi edi
Это че когда доходит до pop все выносим и получается у нас ответ?
Извините за глупые вопросы.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 29 августа 2006 16:14
· Личное сообщение · #5

push ebx esi edi
Ну это кидается DWORD в стек, POP соответственно извлекается из стека. Извлечение - в обратном порядке должно быть.



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2006 17:34
· Личное сообщение · #6

У спасибо . А я думал по другому. Ну раз так дело пошло я щас как не пытался не мог понять этого:
invoke GetModuleHandle,0
mov [hinstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
mov [wc.style],0
mov [wc.lpfnWndProc],WindowProc
mov [wc.cbClsExtra],0
mov [wc.cbWndExtra],0
mov eax,[hinstance]
mov [wc.hInstance],eax
mov [wc.hbrBackground],COLOR_BTNFACE+1
mov [wc.lpszMenuName],0
mov [wc.lpszClassName],_class
invoke RegisterClass,wc
конец.
Вот вопрос:
invoke GetModuleHandle,0
mov [hinstance],eax
Это берем хэндл нашей программы и сохраняем переменную [hinstance] в eax
я ведь правильно думаю?
И еще одна просьба.
Если можно хотябы кратчайшее пояснение че она делает. Я дак понял это связано с интерфейсом.
invoke LoadIcon,0,IDI_APPLICATION-загружаем поименованый ресурс пиктограммы.
бля бля бля
invoke LoadCursor,0,IDC_ARROW-загружаем поименованый ресурс курсора.
Может быть мой предроложение не правильны.
Но не судите строго . Сижу с 2 справочниками и разбираю как работает.
Спасибо заранее благодарен.



Ранг: 36.9 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 29 августа 2006 22:41
· Личное сообщение · #7

Lukar1 пишет:

Вот вопрос:
invoke GetModuleHandle,0
mov [hinstance],eax
Это берем хэндл нашей программы и сохраняем переменную [hinstance] в eax
я ведь правильно думаю?

Наоборот.Функция GetModuleHandle возвращает хендл процесса в еах,а потом здесь mov [hinstance],eax это значение переносится из регистра еах в переменную [hinstance].
Lukar1 пишет:

У спасибо . А я думал по другому. Ну раз так дело пошло я щас как не пытался не мог понять этого:
invoke GetModuleHandle,0
mov [hinstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
mov [wc.style],0
mov [wc.lpfnWndProc],WindowProc
mov [wc.cbClsExtra],0
mov [wc.cbWndExtra],0
mov eax,[hinstance]
mov [wc.hInstance],eax
mov [wc.hbrBackground],COLOR_BTNFACE+1
mov [wc.lpszMenuName],0
mov [wc.lpszClassName],_class
invoke RegisterClass,wc

Попробую обьяснить..Сначала как и в начале любой программы определяем хендл нашего процесса..Потом подгружаем ресурсы - иконку и курсор...Дальше идет регистрация класа окна через function RegisterClass(var WndClass: TWndClass): Bool;
Так вот все эти mov формируют клас окна(который является структурой wc), тоесть определяют его свойства - стиль,процедуру обработчика,курсор,иконку,фон и т.д.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 29 августа 2006 23:29
· Личное сообщение · #8

Lukar1, загляни в раздел "Новичку"

-----
Всем привет, я вернулся




Ранг: 79.6 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 08 сентября 2006 04:12
· Личное сообщение · #9

пиши вирь. и пе формат выучиш и как свой код присоеденять.

-----
power and the money money and the power



 eXeL@B —› Вопросы новичков —› С чего начать?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати