Консультация № 194197
16.12.2018, 12:53
0.00 руб.
0 47 1
здравствуйте
windows 10 x64
intel xeon E31220
я в асемблере полный ноль , искал самый удобный язык для написание вирусов или хакинга мне подсказали асемблер я прошвернулся по форумам и видео но так и не узнал что за ПО мне использовать ,
везде пишут что асемблер 32 битный а у меня пк 64 это не проблема ?
на сколько я понял асемблер на прямую использует риестор и процессор моего пк в отличии от visual studio я не взорву мой пк если не ту кашу напишу


Обсуждение

давно
Посетитель
402605
21
22.12.2018, 17:50
общий
все наконецто выкуси асемблер

вот код
.586
.model flat ,stdcall
option casemap:none
extern MessageBoxA@16:near
; Заголовочные файлы (здесь прототипы функций)
include D:\masm32\include\kernel32.inc
include D:\masm32\include\user32.inc
; Библиотеки функций для компоновки
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
; Секция инициализированных данных
.data
head db "hello world$",0
mess db "heoo$",0
; начало кода
.code
start:
push 0
push offset head
push offset mess
push 0
call MessageBoxA@16
;invoke ExitProcess,0
end start
давно
Посетитель
402031
115
22.12.2018, 18:03
общий
Ну вот. Можешь же когда захочешь.
Только зря заремарил функцию ;invoke ExitProcess,0.
Данная функция, считается хорошим тоном, для завершения любой программы.
И если у тебя masm32 то вызывать функции имеющие параметры, лучше макросом invoke.
Не надо самому запихивать параметры в стек, это за тебя сделает макрос invoke, а заодно проконтролирует
на количество параметров и соответствие их размерности. (BYTE, WORD, DWORD)
давно
Посетитель
402605
21
22.12.2018, 20:21
общий
22.12.2018, 20:21
а что такое макрос
и что такое (BYTE, WORD, DWORD)
давно
Посетитель
402031
115
23.12.2018, 08:33
общий
Макрос — это макрокоманда в программном коде, последовательность нескольких команд или процедур, объединённых для выполнения определённой задачи.

Размерность данных
BYTE - байт = 8 бит
WORD - 2 байта = 16 бит
DWORD - 4 байта = 32 бита

А вообще в инете есть такие поисковые системы как Google, Yandex, Yahoo и т.д и т.п.
И если тебя в этих поисковиках не забанили, то там можно найти практически
любую интересующую тебя информацию.
К тому же абсолютно бесплатно.
Учись пользоваться поиском. Удачи.
давно
Посетитель
402605
21
23.12.2018, 11:42
общий
ну спасибо
давно
Посетитель
402605
21
23.12.2018, 15:38
общий
и еше один вопрос уж простите можно сделать задержку вывода текста например у меня три предложения между каждым предложение хочу сделать промежуток времени
в с# это делалось с помощью кода Thread.Sleep(4000); в асемблере есть что нибудь подобное
давно
Посетитель
402031
115
23.12.2018, 15:50
общий
Да конечно можно.
В ассемблере так же как и С# задержка делается при помощи
Win API функции Sleep.
Разница лишь в синтаксисе написании
C# - Thread.Sleep(4000);

Masm - invoke Sleep,4000
или
push 4000
call Sleep
две формы вызова функции, какая тебе удобней ту и используй
результат одинаковый.
давно
Посетитель
402605
21
23.12.2018, 16:28
общий
так если у него invoke значит писать в само конце
давно
Посетитель
402031
115
23.12.2018, 17:00
общий
invoke - это макрос вызова функции
Формат вызова функции:
invoke [функция], P1,......Pn
P1......Pn - параметры функции
Если у функции нет параметров то лучше ее вызывать
оператором call
давно
Посетитель
402605
21
23.12.2018, 17:11
общий
так писать ?
head db "hello world$",0
mess db "heoo1$",0
;invoke Sleep,4000
mess db "heoo2$",0

или писать в самый конец
mess db "heoo2$",0
; начало кода
.code
start:
push 0
push offset head
push offset mess
push 0
call MessageBoxA@16
;invoke ExitProcess,0
invoke Sleep,4000
давно
Посетитель
402031
115
23.12.2018, 17:33
общий
Код:


.data

head db "hello world$",0
mess db "heoo1$",0
mess1 db "heoo2$",0

.code

start:
push 0
push offset head
push offset mess
push 0
call MessageBoxA@16
или так
invoke MessageBox,0,addr mess,addr head,MB_OK
invoke Sleep,4000
push 0
push offset head
push offset mess1
push 0
call MessageBoxA@16
invoke MessageBox,0,addr mess1,addr head,MB_OK
invoke ExitProcess,0

end start


Вот так надо писать
давно
Посетитель
402605
21
23.12.2018, 17:42
общий
23.12.2018, 17:43
подожди а где invoke sleep
в первом варианте
давно
Посетитель
402031
115
23.12.2018, 17:49
общий
Читай то, что я пишу внимательно и главное не забывай при этом думать.
давно
Посетитель
402605
21
23.12.2018, 18:36
общий
23.12.2018, 18:57
говорит ошибка с MB OK
и за что отвечает эта функция addr mess,addr head,MB_OK
давно
Посетитель
402031
115
24.12.2018, 13:25
общий
URL >>

Читай здесь, расписано в стихах.
давно
Посетитель
402605
21
24.12.2018, 20:12
общий
оооооо воу спасибо а на счет ошибки
A2006 undefined sumbol : mb ok
A2114 invoke argument tupe mishmath : argument : 4
давно
Посетитель
402031
115
25.12.2018, 07:50
общий
A2006 - Ругается, что не определен символ MB_OK
A2114 - Ошибка в аргументе 4 вызова функции.
Я же не вижу как ты делаешь вызов функции, может снова пишешь mAssagebox
давно
Посетитель
402605
21
25.12.2018, 11:41
общий
.586
.model flat ,stdcall
option casemap:none
extern MessageBoxA@16:near
; Заголовочные файлы (здесь прототипы функций)
include D:\masm32\include\kernel32.inc
include D:\masm32\include\user32.inc
; Библиотеки функций для компоновки
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
; Секция инициализированных данных
.data
head db "hello world$",0
mess db "heoo1$",0
;invoke Sleep,4000
mess1 db "heoo2$",0
;invoke Sleep,4000
mess2 db "heoo4$",0
;invoke Sleep,4000
mess3 db "heoo5$",0
;invoke Sleep,4000
mess4 db "heoo6$",0
;invoke Sleep,4000
mess5 db "heoo3$",0
;invoke Sleep,4000
mess6 db "heoo2$",0
; начало кода
.code
start:
push 0
push offset head
push offset mess
push 0
call MessageBoxA@16
invoke MessageBox,0,addr mess,addr head,MB_OK
invoke Sleep,4000
push 0
push offset head
push offset mess1
push 0
call MessageBoxA@16
invoke MessageBox,0,addr mess1,addr head,MB_OK
invoke ExitProcess,0

end start
давно
Посетитель
402605
21
25.12.2018, 13:19
общий
я это все буду делать в subsystem:console
и мне нужна задержка между этими строками если знаком с си шарп вот так вот это пишется там
Console.Write("проверка на наличие ошибок 1%");
Thread.Sleep(1500);
Console.Write("\rпроверка на наличие ошибок 39%");
Thread.Sleep(3000);
Console.Write("\rпроверка на наличие ошибок 100%");

Console.Write("\nпроверка системы 0%");
Thread.Sleep(3000);
Console.Write("\rпроверка системы 64%");
Thread.Sleep(2500);
Console.Write("\rпроверка системы 100%");

примерна вот так я знаю что в асемблере переход на следующую строку пишется через ,13, если эти строки можно как то задержать только вот вобше не имею понятие еше я прочитал чтоб добавить окно да нет достаточно написать push 68
давно
Посетитель
402031
115
25.12.2018, 15:35
общий
Если ты хочешь изучить ассемблер, то позабудь про С# и сосредоточься на ассемблере.
Это совершенно разные языки программирования.
С разным подходом к решению той или иной задачи.
В инете есть статьи "Уроки Iczelion'а".
Почитай. Написано доступным языком с анализом кода. Имеются исходные файлы примеров.
давно
Посетитель
402031
115
25.12.2018, 15:38
общий
А здесь все это рассказывать, надо слишком много времени.
И вообще больше самостоятельности, тольк так можно достичь желаемого.
Ассемблер мощный язык, но сложноват в понимании.
давно
Посетитель
7438
7205
25.12.2018, 15:47
общий
Адресаты:
Время консультации подходит к концу.
Было бы неплохо, если бы Вы сформировали ответ на консультацию (кнопка сверху "ответить")
Сформулировать и обобщить некоторые мысли на данном этапе.
А общение можно будет продолжить и дальше, пока есть необходимость.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
402031
115
25.12.2018, 16:24
общий
это ответ
Здравствуйте, craizi.04!
Я подобрал для вас информацию и выложил в обменник.
Вот ссылки на скачивание:
https://rfpro.ru/upload/11359 - Здесь статьи в формате html
https://rfpro.ru/upload/11360 - Здесь исходные коды описанных примеров.
Разбирайтесь. Больше самостоятельности
Удачи.
давно
Посетитель
402605
21
25.12.2018, 20:15
общий
25.12.2018, 20:15
ну пазязя где там в коде ошибка
давно
Посетитель
402031
115
26.12.2018, 07:32
общий
Если ты используешь Win Api то надо подключать заголовочный файл windows.inc
Вот то, что ты путаешься сделать.
Посмотри внимательно и сравни со своим кодом. Разницу надеюсь заметишь.
Прикрепленные файлы:
fc814df235423bd89adeff4d9e3074f1.7z
давно
Посетитель
402605
21
26.12.2018, 12:50
общий
ух ты как все глубоко собственный incloud еше не когда не приходилось создавать спасибо тебе огромное добрый человек
давно
Посетитель
402031
115
26.12.2018, 13:02
общий
https://rfpro.ru/upload/11359 - Здесь статьи в формате html
https://rfpro.ru/upload/11360 - Здесь исходные коды описанных примеров.
Скачай, читай и разбирайся.
давно
Посетитель
402605
21
26.12.2018, 13:26
общий
спасибо
давно
Посетитель
402031
115
26.12.2018, 13:36
общий
Не за что.
С наступающим Новым годом !!!!
Удачи в освоении.
давно
Посетитель
402031
115
26.12.2018, 13:37
общий
Форма ответа