$banner_comment_start
CRACKL@B Оригинальный DVD-ROM крэкера: CRACKL@B DVD !
Домой | Статьи | RAR-cтатьи | Форум | Программирование | Скачать | DVD-ROM
Новичку | FAQ | Ссылки | Интервью | Архив | Новости | Связь


Русский / Russian English / Английский

Сейчас на форуме: crypto, RaMMicHaeL, Ara (+7 невидимых пользователей)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 CRACKL@B —› Программирование —› Как создать DLL?
Посл.ответ Сообщение
killsniper

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

Создано: 11 мая 2006 08:29:05
Личное сообщение #1

Как создать на Асме (конкретно - на MASM) свою DLL и заюзать функции из неё в программе?
Guru_eXe


Ранг: 249.5 (наставник)
Статус: Участник
win32.org.ru

Создано: 11 мая 2006 08:35:17
Личное сообщение #2

killsniper пишет:
и заюзать функции

этого не помню, вспомнил, ток как компилить:
C:/masm32/bin/ml /c /coff /Cp mydll.asm
C:/masm32/bin/link /DLL /DEF:mydll.def /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib mydll.obj


-----
may all your PUSHes be POPed!
Keo

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

Создано: 11 мая 2006 08:38:21
Личное сообщение #3

killsniper пишет:
Как создать на Асме (конкретно - на MASM) свою DLL и заюзать функции из неё в программе?

Блин..... Неужели yandex.ru опять сдох????
Guru_eXe


Ранг: 249.5 (наставник)
Статус: Участник
win32.org.ru

Создано: 11 мая 2006 08:45:05
Личное сообщение #4

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

-----
may all your PUSHes be POPed!
RaiN

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

Создано: 11 мая 2006 14:22:14
Личное сообщение #5

В самом дистрибутиве masm'а имеются примеры DLL'ок и их прикрутка к проге!
killsniper

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

Создано: 11 мая 2006 17:15:41
Личное сообщение #6

Пасибо всем.

Яндекс не сдох, а выдаёт какую-то бодягу.
di-2


Ранг: 230.7 (наставник)
Статус: Участник
Norg

Создано: 11 мая 2006 19:01:24
Личное сообщение #7

killsniper Скачай с wasm.ru masm32 там в папке Туториал дохрена примеров

-----
Идите на...хотя постойте!
intty


Ранг: 122.4 (ветеран)
Статус: Участник

Создано: 11 мая 2006 19:06:50 · Поправил: intty
Личное сообщение #8

%include "c:\nasm\inc\win32n.inc"

global mySetText
export mySetText

global myGetText
export myGetText

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::
[segment code use32 class='CODE']

..start:

dllstart:

mov eax,1
ret 12

;with using stack frame
;One param - offset to stored string
mySetText:
push ebp
mov ebp,esp

mov esi,[ebp+08h]
mov edi,dword stText
mov ecx,[ebp+0Ch]
rep movsb

pop ebp
ret

;with using stack frame
;One param - offset to buffer recieved text
myGetText:
push ebp
mov ebp,esp

mov esi,dword stText
mov edi,dword [ebp+08h]
mov ecx,[ebp+0Ch]
rep movsb

pop ebp
ret

section .BSS

stText resb 020h

;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

[added]
блин. кажется я масм с насмом попутал. ну может пригодится..
1nn0cent

Ранг: 123.9 (ветеран)
Статус: Участник
1nn0$/100

Создано: 11 мая 2006 21:53:24
Личное сообщение #9

Заюзай RadAsm там темплейт готовый. Ну и Iczelion'а почитай.

-----
Blame the victim!
=TS=


Ранг: 213.0 (наставник)
Статус: Участник
# Malware KilleR #

Создано: 11 мая 2006 22:36:23
Личное сообщение #10

killsniper
а можно поинтересоваться, почему именно на асме?

-----
DREAMS CALL US
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 18 мая 2006 15:06:35
Личное сообщение #11

Хм, раз уж подняли тему, то такой вопрос:
Есть на асме либа, у нее одна функция экспортируется.
Параметр один тоже - тип DWORD
Должен передаваться путь через этот параметр dllке.
Какой тип в делфях этот параметр будет иметь?
PChar пробовал - передает нормально только строку длиной в один символ, если длиннее передаешь, то лабуда приходит какая-то...

-----
... we have to give freedom its REVENGE! ...
Hellspawn


Ранг: 679.4 (! !)
Статус: Модератор
Author of DiE

Создано: 18 мая 2006 15:16:01 · Поправил: Hellspawn
Личное сообщение #12

я не знаю конено =) но должно быть норм..
пробовал "stdcall" и т.п. приписать к вызову?

-----
[nice coder and reverser]
mysterio


Ранг: 164.2 (ветеран)
Статус: Участник

Создано: 18 мая 2006 15:18:31
Личное сообщение #13

4kusNick
Параметр один тоже - тип DWORD
Такой же будет и в Делфях
Если юзать PChar - то только как масив, тогда все будет ок.

-----
Don_t hate the cracker - hate the code.
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 18 мая 2006 15:39:43
Личное сообщение #14

Как массив?
А можно поподробней?
Спасибо.

-----
... we have to give freedom its REVENGE! ...
asd

Ранг: 160.2 (ветеран)
Статус: Участник

Создано: 18 мая 2006 16:34:06
Личное сообщение #15

4kusNick
Ф-ия получает строку или указатель на неё?
mysterio


Ранг: 164.2 (ветеран)
Статус: Участник

Создано: 18 мая 2006 16:40:14
Личное сообщение #16

4kusNick
Точно не помню, но вроде так:
Var Переменная : PChar[1024];
или
Var Переменная : array [0..255] of PChar;

-----
Don_t hate the cracker - hate the code.
Hellfire

Ранг: 6.7 (гость)
Статус: Участник

Создано: 18 мая 2006 20:40:06
Личное сообщение #17

А что должна выполнять эта функция? Может ей обычный dword просто передать
Zorn

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

Создано: 19 мая 2006 08:15:22
Личное сообщение #18

Попробуй Integer(PChar('Строка'))
4kusNick


Ранг: 373.4 (мудрец)
Статус: Участник
www.revenge-crew.com

Создано: 19 мая 2006 11:27:12
Личное сообщение #19

Функция, ну, скажем, вызов обычного мессажбокса (параметр - строка самого сообщения).
Спасибо всем, попробую...

-----
... we have to give freedom its REVENGE! ...
 CRACKL@B —› Программирование —› Как создать DLL?
    Для печати 


Оригинальный DVD-ROM крэкера: CRACKL@B DVD !


Вы находитесь на форуме сайта CRACKLAB.RU
Проект ReactOS