Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler
Выпуск № 109
от 10.04.2005, 18:40
Администратор: | Калашников О.А. |
В номере: | Вопросов: 7, Ответов: 16 |
Вопрос № 19237: Здравствуйте! Как в Win2000 поменять маску сети и IPадрес? Или хотя бы вызвать окошко свойств сети (лучше свойство IPпротокола)....
Вопрос № 19238: Эксперту Master135 (к вопросу 19137): А где взять эти модули? Спасибо. ...
Вопрос № 19240: Привет всем! Ответьте pls на следующие вопросы: 1. Как объявить функцию, чтобы она не вставляла в свое начало строки push ebp mov ebp,esp а в конце не ставила leave. 2. Как дизассемблировать драйвер? Спасибо за ...
Вопрос № 19242: Здраствуйте уважаемые эксперты!!! У меня такой вопрос. У меня есть MASM 6.11 Masm6.1 и TAsm но ни один не может из них прокомпилировать программу написанных на них хотя я думаю что это может быть что - то с асмом или с компом? Пожалуйста ...
Вопрос № 19250: Привет! Огромное спасибо всем экспертам за помощь в прошлых вопросах. Сегодня меня интересует DTA!!! Вобщем приведите пожалуйста примеры его использования. .
Вопрос № 19252: Подскажите, где можно почитать про работу с таймером.... А также как можно обрабатывать по таймеру вывод сообщения в видеобуфер......
Вопрос № 19253: У меня вопрос Евгению Иванову. Он мне в качестве примера программы вывода на экран с использованием таймера предложил свою программу. Но я так и не смог найти в огромной программе процедуры, отвечающие за вывод на экран.... Если не сложно, Евгений Ив...
Вопрос № 19237 |
Здравствуйте! Как в Win2000 поменять маску сети и IPадрес? Или хотя бы вызвать окошко свойств сети (лучше свойство IPпротокола). |
Отправлен: 04.04.2005, 18:30 Вопрос задал: DSota (статус: Студент) Всего ответов отправлено: 2 |
Отвечает: John Freeman Здравствуйте, DSota! Вызвать - не копал, сразу не скажу, для смены IP - чисто WinExec тк есть netsh |
Ответ отправил: John Freeman (статус: Профессионал) Отправлен: 04.04.2005, 19:03 |
Отвечает: Master135 Здравствуйте, DSota! Пуск->подключения->выбираешь соотв. сетевой адаптер->свойства->TCP-IP(Двойной щелчек) и вводи.... |
Ответ отправил: Master135 (статус: 4-ый класс) Отправлен: 05.04.2005, 01:22 |
Вопрос № 19238 |
Эксперту Master135 (к вопросу 19137): А где взять эти модули? Спасибо. |
Отправлен: 04.04.2005, 18:58 Вопрос задал: Ling (статус: Посетитель) Всего ответов отправлено: 1 |
Отвечает: Master135 Здравствуйте, Ling! Мое мыло Master1313@mail.ru-напиши и я вышлю их тебе, а вобще-то какие-то из этих файлов идут в дистрибутеве к Pascal. Или качай тут http://comsci.dsu.dp.ua/ftpdir/Developer/Turbo%20Pascal%207.1%20FINAL/BIN/ |
Ответ отправил: Master135 (статус: 4-ый класс) Отправлен: 05.04.2005, 01:06 |
Вопрос № 19240 |
Привет всем! Ответьте pls на следующие вопросы: 1. Как объявить функцию, чтобы она не вставляла в свое начало строки push ebp mov ebp,esp а в конце не ставила leave. 2. Как дизассемблировать драйвер? Спасибо за ответ. |
Отправлен: 04.04.2005, 19:47 Вопрос задал: 1 (статус: 1-ый класс) Всего ответов отправлено: 3 |
Отвечает: Dark_Lord Здравствуйте, 1! 1)Надо отказаться от типа функций stdcall при объявлении модели памяти, а в случае нужды указывать тип функции при объявлении функции, тоесть: .model flat ;не каких stdcall .... .code _start: ... proc_simple proc ;в этой функции не будут генерироваться push ebp/mov ebp,esp/leave ... proc_simple endp ... proc_stdcall proc stdcall hFile:DWORD, hSomething:DWORD LOCAL DaVar:DWORD ;сдесь будет сгенерированно push ebp/mov ebp,esp/sub esp,04h(add esp,-04h)/leave ;а ret превратится в ret 8 ... ret proc_stdcall endp end _start 2)В принципе, способ дизассемблирования драйвера НИЧЕМ не отличается от дизассемблирования любой другой программы, подойдёт даже ida. Конечно, другой вопрос это то, что драйвера могут иметь не PE-структуру и используют совсем другие используемые функции и т.п. Но здесь уже нужно знание работы и возможностей драйверов, а возможность перевести драйвера в код на ассе мблере доступна всегда :) === EI -=- я бы поспорил насчёт модели. модель по умолчанию ставится определённая, так что ставь, не ставь модель и тип языка, который использовать, а толку не будет. вся соль именно в объявлении подпрограммы! нужно обратить внимание на это. === EI -=- |
Ответ отправил: Dark_Lord (статус: Профессионал) Отправлен: 04.04.2005, 22:55 |
Отвечает: PavPS Здравствуйте, 1! 2. На мой взгляд, лучше всего IdaPro. Но без SoftIce - слабовато... Если надо полностью изучить его работу - это надо сидеть над дизассемблингом долго, а потом прогонять его под SoftIce - ом. (из личного опыта: Ну и еще, неплохо иметь под рукой какой-нить драйвер и его исходники, а т.к. логика многих процедур драйвера схожа, то можно сразу и восстановить исходный код...) |
Ответ отправил: PavPS (статус: 7-ой класс) Отправлен: 04.04.2005, 23:32 |
Отвечает: Евгений Иванов Здравствуйте, 1! 1. не используй директивы USES, ARG а в masm не используй входящие параметры. ; Note: Turbo Assembler doesn't generate procedure prolog or epilog ; code in NOLANGUAGE procedures (except size of RET). ; The USES directive cannot be used in NOLANGUAGE procedures. ; The extended CALL syntax cannot be used to call NOLANGUAGE ; procedures, unless the language specifier is overridden, e.g. То есть, используй при объявлении подпрограммы NOLANGUAGE: proc MyProc NOLANGUAGE ARG a1 :dword LOCAL b1 :dword но здесь сам ставь свой код, который устанавливает EBP... а вот RET будет с цифиркой но если не будешь использовать ARG , то и RET будет пустая. ret endp 2. IDA Удачи! |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 05.04.2005, 00:42 |
Вопрос № 19242 |
Здраствуйте уважаемые эксперты!!! У меня такой вопрос. У меня есть MASM 6.11 Masm6.1 и TAsm но ни один не может из них прокомпилировать программу написанных на них хотя я думаю что это может быть что - то с асмом или с компом? Пожалуйста пришлите мне свой асм для программирования на дос (и может обясните почему у меня не запускается и можно ли исправить)и ещё я скачивал с wasm.ru и www.kalashnikof.ru и они же не работают! Всем заранее спасибо! |
Отправлен: 04.04.2005, 21:03 Вопрос задал: newinfo2005 (статус: 1-ый класс) Всего ответов отправлено: 3 |
Отвечает: Вiктор Здравствуйте, newinfo2005! прислать новый асм не проблема, но скорее всего вы неверно работаете с вашими асм-ами, и они у вас рабочие. я на 100% уверено что масм с kalashnikof.ru рабочий, да и на wasm.ru тоже нерабочих асм-ов не стали бы выкладывать. на сайте kalashnikof.ru есть архив рассылки по изучению ассемблера, и в этом архиве есть инструкция как следует ассемблировать и линковать файлы. советую почитать. укажите конкретно что вы делаете и что у вас не получается, Опишите подробно ваши действия. ещё советую почитать архив рассылки - там уже неоднократно обсуждалась подобная тема. удачи! |
Ответ отправил: Вiктор (статус: 3-ий класс) Отправлен: 04.04.2005, 23:37 |
Отвечает: Стас Здравствуйте, newinfo2005! Какая операционка, какой компилятор, что хочешь скомпилить (COM/EXE/PE...) Как компилишь, какие ошибки(сообщения) выскакивают? Возможно, стоит посмотреть на исходник. Дело в тебе, не в компиляторах 100% |
Ответ отправил: Стас (статус: Практикант) Отправлен: 05.04.2005, 00:49 |
Отвечает: Voituk Alexander Здравствуйте, newinfo2005! Скорее всего дело в программе. Я пользуюсь TASM уже лет 10 и проблем не было никогда. Выложи исходник и ключи с какими ты компилишь. |
Ответ отправил: Voituk Alexander (статус: 6-ой класс) Отправлен: 05.04.2005, 12:19 |
Вопрос № 19250 |
Привет! Огромное спасибо всем экспертам за помощь в прошлых вопросах. Сегодня меня интересует DTA!!! Вобщем приведите пожалуйста примеры его использования. |
Отправлен: 04.04.2005, 22:53 Вопрос задал: ttt (статус: Посетитель) Всего ответов отправлено: 2 |
Отвечает: Евгений Иванов Здравствуйте, ttt! DTA используется для поиска файлов. Вот небольшой кусочек из моей программы CODER. Устанавливаю DTA на адрес 128, очищаю его, ищу файлы. mov dx,128 mov di,dx mov cx,64 xor ax,ax rep stosw mov ah,1Ah int 33 call find_first jc errfile mov si,128+30 mov di,ofs full_name3 mov cx,13 rep movsb jmp m42a m22a: call find_next jc end_find m42a: proc find_first ;=4f mov si,ofs name1 mov di,ofs full_name1 push si mov cx,20 rep movsd pop dx mov ah,4Eh mov cx,27h int 33 jc m904f m44f: mov si,ofs full_name1 call get_one_name mov di,128+30 xchg si,di mov cx,13 rep movsb mov si,ofs name2 mov di,ofs full_name2 push di mov cx,20 rep movsd pop si call get_one_name cmp [b si],0 jnz m74f mov di,128+30 xchg si,di push di mov cx,13 rep movsb pop si m74f: push si mov ax,2900h mov di,ofs fcb1+7 int 33 mov ax,2900h mov si,128+30 mov di,ofs fcb2+7 int 33 pop di mov si,ofs fcb2+8 mov bx,ofs fcb1+8 mov cx,8 call copy_part mov al,'.' mov bx,ofs fcb1+8+8 mov si,ofs fcb2+8+8 cmp [b bx],32 jnz m104f sub al,al stosb jmp m504f m104f: stosb mov cx,3 call copy_part xor al,al stosb m504f: clc m904f: ret endp proc copy_part ;=4i lodsb mov ah,[bx] inc bx cmp ah,'?' jz m154i mov al,ah m154i: cmp al,32 jz m184i stosb loop copy_part m184i: ret endp proc get_one_name ;=4h mov dx,si m104h: lodsb or al,al jnz m104h dec si dec si std m154h: lodsb cmp al,':' jz m204h cmp al,'' jz m204h cmp si,dx jnc m154h dec si m204h: cld inc si inc si ret endp proc find_next ;=4g mov ah,4Fh int 33 jc m904g mov si,128+30 mov di,ofs full_name3 m104g: lodsb scasb jnz m44f or al,al jnz m104g or [b f_file],4 jmp m44f m904g: ret endp Приложение: Прикреплённый файл: Загрузить >> |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 05.04.2005, 01:31 Оценка за ответ: 5 |
Отвечает: Стас Здравствуйте, ttt! DTA - область передачи данных. нужна не только для поиска файлов, но и чтения/записи из/в файл "старыми функциями" (FCB ориентированными). Например предусмотрел в проге буффер байт в 512. Устанавливаешь DTA на него: DS:DX = буффер, и AH=1ah int21h. Дальше результаты чтения файла, поиска файлов, отправляюся в эту твою DTA. Записываются данные в файл тоже оттуда. (Функции 11h,12h,14h,15h,4eh,4fh,21h,22h,27h,28h Int21H) За размером области никто не следит. Делай это сам. |
Ответ отправил: Стас (статус: Практикант) Отправлен: 06.04.2005, 01:41 |
Вопрос № 19252 |
Подскажите, где можно почитать про работу с таймером.... А также как можно обрабатывать по таймеру вывод сообщения в видеобуфер... |
Отправлен: 04.04.2005, 23:11 Вопрос задал: edson (статус: Посетитель) Всего ответов отправлено: 4 |
Отвечает: Master135 Здравствуйте, edson! Zubkovassembler под ДоС Win и Unix === EI =-= ну я не понял, ребята!! вы хотя бы себя уважайте. неужели задающий вопроса не может сам (САМ) найти интересующий его материал?! вы что, сидите здесь в качестве автоматической системы поиска? где работа мысли? где анализ? вы что-нибудь новое можете ему сказать, что-то полезное?! то, что он не найдёт в книгах, которые МОЖЕТ найти сам. === EI =-= Приложение: |
Ответ отправил: Master135 (статус: 4-ый класс) Отправлен: 05.04.2005, 01:29 |
Отвечает: Вiктор Здравствуйте, edson! в дополнение к Зубкову могу ещё посоветовать http://asm.shadrinsk.net/jourden.zip и другие книги на сайте asm.shadrinsk.net. удачи! === EI =-= ну я не понял, ребята!! вы хотя бы себя уважайте. неужели задающий вопроса не может сам (САМ) найти интересующий его материал?! вы что, сидите здесь в качестве автоматической системы поиска? где работа мысли? где анализ? вы что-нибудь новое можете ему сказать, что-то полезное?! то, что он не найдёт в книгах, которые МОЖЕТ найти сам. а тебе Виктор, предупреждение. официальное. все последующие ответы без капли мысли (ТВОЕЙ мысли) будут удаляться. потому что в противном случае рассылка засохнет. потому что люди не будут находить здесь ничего нового! === EI =-= |
Ответ отправил: Вiктор (статус: 3-ий класс) Отправлен: 05.04.2005, 01:32 |
Отвечает: Стас Здравствуйте, edson! Суть в том что ты вешаешь свою процедуру на Int8 (18.2 раза в секунду если я проавильно помню) и следишь что там изменилось на b800:0, можно контрольной суммой, можно целиком в буффер толкнуть и с ним сравнивать. А так как ты запретил переключение (в Int10) на 0 страницу, пользователь её никогда не увидит, а на первой можешь сделать клон 0 заменив нужные тебе моменты. скажем. Вообще чтобы думать в правильном направлении нужно понять зачем тебе это все. Какие проги пишут и что ты хочешь менять. |
Ответ отправил: Стас (статус: Практикант) Отправлен: 06.04.2005, 01:29 |
Отвечает: Boriss Сбой был.... Вот здесь есть много примеров http://www.brillianet.com/programming/assembly/source_code/ в частности, http://www.brillianet.com/cgi-bin/download.cgi?/programming/assembly/source_code/buffys.zip - Source-code for a TSR which will wait for a short period of time and then swap the user's text-screen Классика, а точнее, наиболее полное описание прерываний у Ralf Brown: http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/ Очень много всего есть на сайте, посвященном играм: http://thor.prohosting.com/~gameprog/tutorial.html Ну есть что почитать на www.bobjohnson.nm.ru/files.html ДАА!! И не 8-е прерывание переписывать, а 1С удобнее и безопаснее. Оно специально для этого создано и состоит только и IRET. 8-е прерывание его вызывает обязательно |
Ответ отправил: Boriss (статус: Профессор) Отправлен: 06.04.2005, 12:11 |
Вопрос № 19253 |
У меня вопрос Евгению Иванову. Он мне в качестве примера программы вывода на экран с использованием таймера предложил свою программу. Но я так и не смог найти в огромной программе процедуры, отвечающие за вывод на экран.... Если не сложно, Евгений Иванов, можете мне подсказать какие процедуры в программе осуществляют вывод на экран с использование таймера... |
Отправлен: 04.04.2005, 23:49 Вопрос задал: edson (статус: Посетитель) Всего ответов отправлено: 1 |
Отвечает: Евгений Иванов Здравствуйте, edson! таймера там нет, (это программа ASCII). но там есть вывод на экран и работа со страницами. чтобы запихать всё это в обработчик таймера, ума много не нужно. таймер - это 8 прерывание. перехватывать и устанавливать также, как и всё остальные прерывания. обработчик строится по стандартной схеме с обязательным окончанием прерывания по командам: mov al,32 out 32,al удачи! |
Ответ отправил: Евгений Иванов (статус: Профессор) Отправлен: 05.04.2005, 12:16 |
© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.prog.faq |
Отписаться |
В избранное | ||