HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 18.06.2007, 21:49
Satell
Познающий
Регистрация: 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
 
Ответить с цитированием

  #2  
Старый 18.06.2007, 21:59
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


По умолчанию

Цитата:
и в user32.inc ошибка symbol redefinition : wsprintfA
Выход - закомментировать прототип wsprintfA в windows.inc
Это ошибка в масме, wsprintfA объявлена и в user32.inc (где и должна быть) и в windows.inc (где ее за каким-то хреном поместили).
 
Ответить с цитированием

  #3  
Старый 19.06.2007, 11:38
Satell
Познающий
Регистрация: 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] для кого придумали?
 
Ответить с цитированием

  #4  
Старый 25.06.2007, 12:01
x-treem
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #5  
Старый 25.06.2007, 12:08
slesh
Познавший АНТИЧАТ
Регистрация: 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..
 
Ответить с цитированием

  #6  
Старый 25.06.2007, 12:11
x-treem
Участник форума
Регистрация: 08.11.2006
Сообщений: 167
Провел на форуме:
539434

Репутация: 54
По умолчанию

не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki

а потом вывести в мессаджбоксе
 
Ответить с цитированием

  #7  
Старый 25.06.2007, 12:16
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


По умолчанию

Цитата:
Сообщение от x-treem  
не, мне нуна добавлять туда символы.
сначала например А
потом Hello
потом puki

а потом вывести в мессаджбоксе
Ну тогда юзай АПИ функцию
Код:
mov [Buff], 0

invoke lstrcat,[Buff],'HELLO'  ; добавить данные к буферу
 
Ответить с цитированием

  #8  
Старый 25.06.2007, 12:13
iv.
Познавший АНТИЧАТ
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

2x-treem:
Если мне не изменяет память, так работать с памятью нельзя. Надо через регистры.
Типа:
mov AL, byte "A"
mov [Buff], AL
 
Ответить с цитированием

  #9  
Старый 25.06.2007, 12:23
GlOFF
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #10  
Старый 25.06.2007, 12:29
x-treem
Участник форума
Регистрация: 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)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.