• XSS.stack #1 – первый литературный журнал от юзеров форума

Ассемблер Для Начинающих

неа, я вобще в асме полный ньюб, просто у себя в исходниках шаблоны нашёл частоприменяющиееся.
 
Люди откройте для себя http://www.winasm.net !!!
Удобная IDE, куча аддонов к ней, визуальное создание диалогов. Программирвоать ан асме не сложнее чем на других языках, благодаря этой IDE приходится меньше кода вбивать вручную :) Если все знают просьба не пинать, но до этого все что я юзал - текстовый редактор + готовые шаблоны-заготовки кода :)
 
Кстати как нуб ещё советую скачать туториалы iczellion'а, пройдя по этому туториалу можно получить представление о программирвоании на ассемблере (никакой начальной подготовки к ассемблеру непотребуется), ато по своему опыту скажу - языки высокого уровня (а конкретно такие RAD как Delphi) портят все представление о программирвоании. Особенно некоторые новички считают что программирование в Delphi (так например у нас в колледже учат) - это нарисовать форму, навешать кучу VCL-компонент и повесить пару экшенов на батоны. Изучение ассемблера дает очень хорошее представление о том как это все работает.

Кстати гдето на wasm.ru видел переводы тутоиралов икзелиона на русский.

И ещё - делать на асме проги с сложным интерфейсом вполне реально если юзать IDE типа радасм (или винасм) или просто визуальные редакторы ресурсов типа ResEd.

кстати вчера попробовал две популярные IDE - winasm и radasm - вывод: радасм после настройки удобней чем winasm.

а можно гденить надыбать аддинов к нему кроме тех что есть на оффсайте? незнаю чтобы можно было ещё в него встроить но интересно всеравно :)
Может быть хорошие дебаггер хекс редактор и дизасм, хотя наврядли они смогут переплюнать ollydbg и hview :)
 
У меня есть прога:
Код:
        .386
        .model flat, stdcall
        option casemap :none

        include \MASM32\INCLUDE\windows.inc
        include \MASM32\INCLUDE\kernel32.inc
        include \MASM32\INCLUDE\shell32.inc
        include \MASM32\INCLUDE\masm32.inc

        includelib \MASM32\LIB\kernel32.lib
        includelib \MASM32\LIB\shell32.lib
        includelib \MASM32\LIB\masm32.lib

.data
bytes            dw 0
H_Memory_Block	dd 0
Handle2          dd 0
Handle1          dd 0
File_size  dd 0
F_b  db 0
File_buffer	db 0
Head_Buffer	db  255 dup(0)
Reserve  db 0
.code

DllEntry  proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD
           mov         eax,TRUE
           ret
DllEntry  Endp


Create_Pak_File	proc	Pak_file:DWORD
        	invoke        CreateFile,Pak_file,GENERIC_WRITE,\
                          FILE_SHARE_WRITE,\
                          NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,\
                          NULL
        	mov      Handle1,eax
	invoke	SetEndOfFile,Handle1
	ret
Create_Pak_File	endp
End DllEntry

LIBRARY   MyDLL
Как мне из этого сделать DLL, чтоб скажем из VB можно было создавать файл с заданым именем?
А то я запускаю, а там какие то зюзюки вместо имени файла!:)
 
Вот код dll
Код:
  .386
       .model flat, stdcall
       option casemap :none

       include \MASM32\INCLUDE\windows.inc
       include \MASM32\INCLUDE\kernel32.inc
       include \MASM32\INCLUDE\shell32.inc
       include \MASM32\INCLUDE\masm32.inc

       includelib \MASM32\LIB\kernel32.lib
       includelib \MASM32\LIB\shell32.lib
       includelib \MASM32\LIB\masm32.lib

.data
bytes            dw 0
H_Memory_Block dd 0
Handle2          dd 0
Handle1          dd 0
File_size  dd 0
F_b  db 0
File_buffer db 0
Head_Buffer db  255 dup(0)
Reserve  db 0
.code

DllEntry  proc hInstDLL:HINSTANCE, reason:DWORD, reserved1:DWORD
          mov         eax,TRUE
          ret
DllEntry  Endp


Create_Pak_File proc Pak_file:DWORD
        invoke        CreateFile,Pak_file,GENERIC_WRITE,\
                         FILE_SHARE_WRITE,\
                         NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,\
                         NULL
        mov      Handle1,eax
invoke SetEndOfFile,Handle1
ret
Create_Pak_File endp
End DllEntry
- откомпилируй её MASMом
Но для этого нужно создать ещё один файл MyDLL.def - делаем в блокноте и меняем расширение (MyDLL.asm - у нас допустим есть)...

В файле my.def пишем следующее

Код:
LIBRARY   MyDLL
EXPORTS Create_Pak_File
Где Create_Pak_File - имя экспортируемой процедуры,которая теперь будет доступна при импорте из DLL

Я VB не знаю!!! а на вскидку скажу что в коде проги обьяви процедуру с такими же параметрами как и Create_Pak_File - и пометь её как импортируемая (export)
 
Спасибо!
Вот дописал свою DLL, наконец то...Добавил кучу прибомбасов...
Скачать можно здесь:http://myblitz3d.narod.ru/RapidPak.zip
Исходник на мыло могу выслать, если кому нибудь надо...
 
Ну доки читал?
Это паковщик файлов. Прога берёт несколько файлов пихает их в один и кодирует с заданым паролем!
Скажем при написании каких нибудь редакторов, прог интенсивно работающих с файлами может пригодиться...
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Извиняюсь за поднятие старой темы, но чтобы не создавать новые однотипные, напишу тут.
У меня есть идея написать некоторый продукт (малварь) чисто на ассемблере (Масм32). Т.к. опыта у меня мало, мануалов по асму тоже, иногда обсуждаю те или иные детали по кодингу на форумах. И столкнулся с такой тенденцией - практически все в прошлом успешные асм-кодеры переходят на Си. Мотивируя это тем, что на Си удобней и проще писать, нет изврата как на Асме, функций больше, и т.д.
С одной стороны, Си более высокоуровневый язык, там не нужно думать про флаги, стек, и так далее. С другой стороны - кодинг под вин32 это не дос с его сегментами памяти и т.п., здесь все намного удобней и проще, и основано фактически (как я понимаю) на нормальном знании вин апи. Кроме того, как я вижу, при написании малварей Си кодеры тоже чаще всего используют Апи, а не CRT.
Так вот, чем же все таки Си кодинг лучше и удобней кодинга на Масме, для системы виндовс? Почему многие считают, что асм кодинг как кодинг программ, умер? Интересно ваше мнение.
p.s. Надеюсь, тема не перерастет в холивар. Я сам Си практически не знаю (лишь какие-то очень общие основы), поэтому прошу прощения, если вопрос сильно глупый.
 
А разве в чистом Си есть ООП? Вроде только в С++.
Есть С-производные языки с ООП. Суть в том что сложные проекты удобнее разрабатывать на языках более высокого уровня, не обязательно с ООП.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Суть в том что сложные проекты удобнее разрабатывать на языках более высокого уровня
Но чем именно удобней? Если взять чистый Си на вин апи, и Масм на том же вин апи - чем и насколько удобней будет С чем Асм?
 
Но чем именно удобней? Если взять чистый Си на вин апи, и Масм на том же вин апи - чем и насколько удобней будет С чем Асм?

Чем удобней - узнай у кодеров, которые на него переходят :) Может увеличивается их область задач прикладного уровеня. Я лишь предположил. :)

Си создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного программирования, не добавляя на итоговый код программ лишних накладных расходов для компилятора, как это всегда делают языки очень высокого уровня, такие как Бейсик. С этой стороны Си имеет следующие важные особенности:

* простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;
* ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;
* систему типов, предохраняющую от бессмысленных операций;
* использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;
* непосредственный доступ к памяти компьютера через использование указателей;
* минимальное число ключевых слов;
* передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке выполняется с помощью указателей);
* указатели на функции и статические переменные

* области действия имён;
* записи — определяемые пользователем собирательные типы данных (структуры), которыми можно манипулировать как одним целым;
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Интересно, насколько Си кодинг удобней Асм при кодинге именно малвари? А то в других вещах действительно Си проще - скажем, с математическими задачами на Асме можно повесится, а на Си это выполняется просто. Ровно как и Гуи формы лучше рисовать в делфи/бейсике, на чистом Асм коде писать drag and drop контролов тяжело. А там это реализуется стандартными средствами. Но для малвари обычно не нужны ни формы, ни сложная математика.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх