ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.06.2007, 21:49
|
|
Познающий
Регистрация: 13.01.2007
Сообщений: 78
Провел на форуме: 65872
Репутация:
10
|
|
нужно обьединить два исходника на masm, но когда я включаю модули из второй в первую, вылезают ошибки в модуле windows.inc, огромная куча, вида:
syntax error: in structure
structure improperly initialized
symbol type conflict: bool
symbol redefenition: hinst
если его закомментить то ошибки исчезают
и в user32.inc ошибка symbol redefinition : wsprintfA
т.е. как я понял какие-то структуры из windows.inc как-то перекрываются со структурами из других модулей?
как это можно решить, можно ли вторую программу как-нибудь отдельным модулем c подпрограммой сделать, а из первой её вызывать?
Код:
;модули первой программы
EXTERN shutdown@8:NEAR
EXTERN recv@16:NEAR
EXTERN send@16:NEAR
EXTERN accept@12:NEAR
EXTERN listen@8:NEAR
EXTERN bind@12:NEAR
EXTERN closesocket@4:NEAR
EXTERN socket@12:NEAR
EXTERN CharToOemA@8:NEAR
EXTERN WSAStartup@8:NEAR
EXTERN wsprintfA:NEAR
EXTERN GetLastError@0:NEAR
EXTERN ExitProcess@4:NEAR
EXTERN lstrlenA@4:NEAR
EXTERN WriteConsoleA@20:NEAR
EXTERN GetStdHandle@4:NEAR
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\ws2_32.lib
includelib \masm32\lib\winmm.lib
include \masm32\include\kernel32.inc
include \masm32\include\winmm.inc
;модули второй программы
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\user32.inc
include \masm32\include\wsock32.inc
includelib \masm32\Lib\masm32.lib
includelib \masm32\Lib\wsock32.lib
|
|
|

18.06.2007, 21:59
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
и в user32.inc ошибка symbol redefinition : wsprintfA
Выход - закомментировать прототип wsprintfA в windows.inc
Это ошибка в масме, wsprintfA объявлена и в user32.inc (где и должна быть) и в windows.inc (где ее за каким-то хреном поместили).
|
|
|

19.06.2007, 11:38
|
|
Познающий
Регистрация: 13.01.2007
Сообщений: 78
Провел на форуме: 65872
Репутация:
10
|
|
выдрал фтп сервер из пинча
вроде бы компилиться ml /c /coff /Cp ftp.asm
потом линкую link /subsystem:windows ftp.obj
вылезают ошибки unresolved external symbol _SendReply@8
unresolved external symbol _MainSockListen@0
unresolved external symbol _ServeThread@4
в файле obj к функциям SendReply, MainSockListen, ServeThread добавляются какие-то цифры и нижняя черточка перед _функция@8 _функция@0 _функция@4 и линкер не может понять их
что это?
у каво есть рабочий исходник ftp сервера?
ниже то что добавил в файл ftp.asm
Код:
.586P
.MODEL FLAT, stdcall
include Inc\windows.inc
include Inc\kernel32.inc
include Inc\user32.inc
include Inc\advapi32.inc
include Inc\ws2_32.inc
include Inc\wsock32.inc
include Inc\oaidl.inc
include Inc\pinch.inc
include Inc\ole32.inc
include Inc\shlwapi.inc
include Inc\oleaut32.inc
include Inc\shell32.inc
include Inc\masm32.inc
include Inc\rasapi32.inc
include Inc\gdi32.inc
include Inc\oaidl.inc
include Inc\aplib.inc
include Inc\urlmon.inc
include Inc\wininet.inc
includelib Lib\ole32.lib
includelib Lib\kernel32.lib
includelib Lib\user32.lib
includelib Lib\oleaut32.lib
includelib Lib\advapi32.lib
includelib Lib\shlwapi.lib
includelib Lib\shell32.lib
includelib Lib\masm32.lib
includelib Lib\wsock32.lib
includelib Lib\ntdll.lib
includelib Lib\ws2_32.lib
includelib Lib\rasapi32.lib
includelib Lib\gdi32.lib
includelib Lib\urlmon.lib
includelib Lib\aplib.lib
includelib Lib\wininet.lib
start:
invoke startftp
end start
Последний раз редактировалось De-visible; 29.04.2008 в 01:23..
Причина: теги [code] для кого придумали?
|
|
|

25.06.2007, 12:01
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме: 539434
Репутация:
54
|
|
у мну лам проблем.
имеется такой код на масм:
Код:
.DATA
Buff db 100
.code
start:
mov [Buff], byte "A"
end start:
надо вообщем в буффер вставить А.
но ошибка.
помогите пожалуйсто
Последний раз редактировалось De-visible; 29.04.2008 в 01:24..
|
|
|

25.06.2007, 12:08
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 x-treem тебе нужно весь буфер забить символом A?
Если а то вот код на FASM
Код:
xor edi,edi
m:
mov [Buff+edi], byte "A"
inc edi
cmp edi,100
jbe m
я с масм не работал, поэтому незнаю прокатит
mov [Buff+edi], byte "A" или нет.
Ты попробуй сделать так:
Код:
xor edi,edi
lea ebx,buff
mov al,"A"
m:
mov [ebx+edi], byte al
inc edi
cmp edi,100
jbe m
Последний раз редактировалось slesh; 25.06.2007 в 12:13..
|
|
|

25.06.2007, 12:11
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме: 539434
Репутация:
54
|
|
не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki
а потом вывести в мессаджбоксе
|
|
|

25.06.2007, 12:16
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Сообщение от x-treem
не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki
а потом вывести в мессаджбоксе
Ну тогда юзай АПИ функцию
Код:
mov [Buff], 0
invoke lstrcat,[Buff],'HELLO' ; добавить данные к буферу
|
|
|

25.06.2007, 12:13
|
|
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме: 7134052
Репутация:
1204
|
|
2x-treem:
Если мне не изменяет память, так работать с памятью нельзя. Надо через регистры.
Типа:
mov AL, byte "A"
mov [Buff], AL
|
|
|

25.06.2007, 12:23
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
iv. с памятью можно так работать, это же не из одного места памяти в другое, это в область памяти число пересылается... команда mov - это сделать в силах! mov Buff, "A"
x-treem
Код:
.386
.model flat, stdcall
option casemap:none
.DATA?
Buff db 100 dup(?)
.code
start:
mov [Buff], "A"
ret
end start
Нужно было обьявить правильно буфер "Buff db 100 dup(?)" + "end start:" - двоеточие не нужно...
P.S. x-treem Символы добавляются откуда? из DATA или просто в коде по штуке? или тебе сразу строку можно в буфер положить?
Последний раз редактировалось xqwerx; 25.06.2007 в 12:25..
|
|
|

25.06.2007, 12:29
|
|
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме: 539434
Репутация:
54
|
|
у мну lstrcat не работает. то естьвот
.DATA
Buff db 100
.CODE
start:
mov al, "И"
mov [Buff], al
xor al,al
mov al, "з"
add [Buff+1], al
add [Buff+2], al
mov [Buff], 0
invoke lstrcat,[Buff],"HELL"
invoke MessageBox, 0, addr Buff, addr Buff, MB_OK
invoke ExitProcess, NULL
end start
и нету мессадж бокса. да и вообще только 4 символа можно добавить
что тут не так?
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|