Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 402
от 28.10.2002, 16:40

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1627
Отправлено ответов: 5131
Активность: 315.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Biv
Статус: Опытный
Общий рейтинг: 116.04
[Подробней >>]
Eugene
Статус: Доверительный
Общий рейтинг: 117.32
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 156.31
[Подробней >>]
 
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 129.89
[Подробней >>]
Dmitry
Статус: Начальный
Общий рейтинг: 102.77
[Подробней >>]
Maverick
Статус: Опытный
Общий рейтинг: 139.24
URL: Страница по асму и вирмейку
Телефон: 89039415024 (BiLine GSM)
[Подробней >>]
 
igorash
Статус: Профессиональный
Общий рейтинг: 118.37
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 154.82
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 131.48
URL: моя рассылка по Protected Mode
[Подробней >>]
 
Supra
Статус: Доверительный
Общий рейтинг: 117.75
[Подробней >>]
Atmion
Статус: Начальный
Общий рейтинг: 123.52
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.55
URL: Страничка обо мне и моих друзьях
[Подробней >>]
 
oleg
Статус: Доверительный
Общий рейтинг: 137.7
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1590. Уважаемые господа эксперты! Подскажите пожалуйста каким образом можно удалить или обойти пароль в CM... (ответов: 3)
Вопрос № 1591. Здравствуйте.Случайно откопал материалы вашей рассылки аж 2000г.Классно написано. До этого ассемблер... (ответов: 4)
Вопрос № 1592. Да. Я понял для чего нужен АСМ. Знать только высокие языки программирования настоящему программисту ... (ответов: 9)
Вопрос № 1593. Здрасте уважаемые господа. Ответье мне на вопрос и/или киньте ссылки на инфу. Занимаюсь в данный... (ответов: 3)
Вопрос № 1594. Приветствую Вас уважаемые эксперты! Помогите разабратся с WSAStartup , если задаю версию 100H выдает... (ответов: 3)
Вопрос № 1595. Всем привет! Почему прога может валиться в 98-ой, хотя работает в XP. А именно валится в Kernel32.dl... (ответов: 3)

Вопросов: 6, ответов: 25


 Вопрос № 1590

Уважаемые господа эксперты!
Подскажите пожалуйста каким образом можно удалить или обойти пароль в CMOS. Проблемма в следюещем - компьютер (ноутбук) запломбирован и вытащить батарейку я не могу (он прналдежит фирме). Пробовал забить ячейки хламом используя порты 70h и 71h, как советовал Bob Johnson (ответ на вопрос № 1255)ни каких изменений после перезагрузки компьютера не произошло. Помогите пожалуйста, может быть есть какой-либо способ используя Ассемблер (т.е. без вскрытия) справиться с паролем. Или может кто ссылкой поможет где можно инфу по этому вопросу найти. Заранее благодарен! Makronix


Приложение:


Вопрос отправлен: 23.10.2002, 15:31
Отправитель: Makronix (makronix@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Biv

Здравствуйте, Makronix!
Если вам не принципиально писать прогу на асме, то можно загрузиться с системной дискеты от, например, 98-го маздая. и воспользоваться какой-нибудь утилиткой.

Ответ отправлен: 23.10.2002, 22:01
Отправитель: Biv


Отвечает Eugene

Здравствуйте, Makronix!
Во первых надо грузиться в дос с дискиты, а во вторых запускать эту прожку.
http://ap.diaspora.ru/cgi-bin/down.pl?kompi=Assembler&cont_type=src&tema=Âçëîìùèêè%20ïàðîëåé
P.S. test www.ya.ru


Ответ отправлен: 23.10.2002, 15:52
Отправитель: Eugene


Отвечает Bob Johnson

Добрый день, Makronix!
Вот твои проблемы может в Win2K. Перед тем как забивать CMOS - загрузись в ДОС с дискеты. Если это отключено, то плакать не стоит. Кулхацкеры не из России нашли дыру в защите Win2K! Они написали прогу DebPloit, которая позволяет запускать любому пользователю любое выбранное им приложение с правами администратора. Таким образом ты можешь запустить compmgmt.msc и потом создать себе пользователя с правами администратора! А потом - ломай Win2K как тебе нужно.


Ответ отправлен: 24.10.2002, 12:58
Отправитель: Bob Johnson


 Вопрос № 1591

Здравствуйте.Случайно откопал материалы вашей рассылки аж 2000г.Классно написано. До этого ассемблер казался китайской грамотой. Прорабатывая примеры,приведеные там столкнулся с проблемой. Есть кусок кода:
mov ah,9
mov dx,offset string
int 21h
int 16h
int 20h
string db 'ткни клаву тормоз$'
По какой-то причине вместо 'ткни клаву тормоз'
выводится 'Для продолжения нажмите любую клавишу...'
причем в отладчике при пошаговом тестировании все работает нормально
Спасибо.



Вопрос отправлен: 23.10.2002, 16:29
Отправитель: Stas (scomoroh_stas@pochtampt.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Dark_Lord

Приветствую Вас, Stas!
Может я конечно не прав, но после
mov ah,9
mov dx,offset string
int 21h
в al должно быть 24h, а функции 24h я у int 16h не припомню, попробуйте после этих трёзх строчек поставить
xor ax,ax (обнуление ах)!

Ответ отправлен: 23.10.2002, 18:46
Отправитель: Dark_Lord


Отвечает Dmitry

Здравствуйте, Stas!
Поменяй функцию прерывания 16h.

Ответ отправлен: 24.10.2002, 01:54
Отправитель: Dmitry


Отвечает Maverick

Здравствуйте, Stas!
Ты бы написал чем компонуешь, линкуешь.
Какая ось стоит.
Да и привел бы в пример весь код, я всяко извращался, но у меня все работает и все выводит как надо.


Ответ отправлен: 24.10.2002, 05:34
Отправитель: Maverick


Отвечает Bob Johnson

Добрый день, Stas!
Не могу сказать точно, потому что у меня (в ХР) все работает нормально. Но предположу - int 16h - это пауза...
Она то и выводит "для про..." Попробуй в конце своей строки поставить:
string db 'ткни клаву тормоз$', 13, 10
Может тогда будет все ОК.


Ответ отправлен: 24.10.2002, 12:59
Отправитель: Bob Johnson


 Вопрос № 1592

Да. Я понял для чего нужен АСМ. Знать только высокие языки программирования настоящему программисту мало, нужно обязательно познакомится с АСМ. Он мне дал реальное представления компа. Я понял как всё по настоящему взаимодействует, выполняется, хранится в памяти и т.д. Так же на АСМе можно вытварять такие вещи , которые языкам высокого уровня и не снились!! Наверное, это то самое, что не довало мне спокою. Да, я признаю что я был не прав говоря что на АСМе уже никто не пишет и что он уже умер. АСМ никогда не умрёт пока есть на нашем шарике, Земля, компутеры.
Конечно, всё же, АСМ не предназначен для больших или требующих большого вычисления(типа АСУ:-) программ, но на нём нужно писать проги которые требуют скорость и размер(драйвера,вири ит.д.), а также использовать в качестве вставок в языки высокого уровня. Теперь я использую вставки на АСМе для своих программ и они начинают жить новой жизню! Увеличивается их производительность и уменьшается размер!
Вобщем, АСМ открыл мне второе дыхание в программном деле!
З.Ы. На АСМе можно сделать то , что на других языках сделать невозможно....



Вопрос отправлен: 23.10.2002, 19:32
Отправитель: Soldier (soldier@xakep.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Biv

Приветствую Вас, Soldier!
Это ты пытаешься аплодисменты сорвать?

Ответ отправлен: 23.10.2002, 21:07
Отправитель: Biv


Отвечает igorash

Добрый день, Soldier!
а вот с его З.Ы. не согласен - во всех хороших языках есть возможность
сделать все что хочешь, но вот только через какую жопу и с какой
скоростью все это будет - вопрос другой


Ответ отправлен: 23.10.2002, 21:12
Отправитель: igorash


Отвечает Dark_Lord

Приветствую Вас, Soldier!
Наконец-то слова вполне трезвого человека;)

Ответ отправлен: 23.10.2002, 21:15
Отправитель: Dark_Lord


Отвечает masquer

Приветствую Вас, Soldier!
Мне это какой-то Библейский фрагмент напоминает. Или женскую логику :))))
Ну что, осталось только огранизовать культ любителей ассемблера, организовать церковь и солдата поставить во главе, чтобы шел он с развевающимся флагом в одной руке а с освещающим путь факелом - в другой, отгонять нечисть и громко кричать: Асм рулез!!!
Аминь :)

Ответ отправлен: 24.10.2002, 11:21
Отправитель: masquer


Отвечает Broken Sword

поздравляю


Ответ отправлен: 23.10.2002, 20:28
Отправитель: Broken Sword


Отвечает Maverick

Добрый день, Soldier!
Да, хорошо бы поместить твое первое письмо и это вместе.
И вставить куданибудь как пособие начинающим.
Как быстро меняется мнение у людей, стоит им поближе познакомится с этим языком :)


Ответ отправлен: 24.10.2002, 05:51
Отправитель: Maverick


Отвечает Supra

Приветствую Вас, Soldier!
И пришло понимание..........


Ответ отправлен: 26.10.2002, 21:03
Отправитель: Supra


Отвечает Eugene

Добрый день, Soldier!
Аллилуйя!
Не понимаю, с чего такая восторженность. Америку вроде не открыл, всё это было известно уже до него.

Ответ отправлен: 24.10.2002, 09:08
Отправитель: Eugene


Отвечает Bob Johnson

Доброе время суток, Soldier!
Прямо как откровения: "ассемблер - это действительно мощный язык. А сейчас мы все умрем.".
:-)


Ответ отправлен: 24.10.2002, 12:59
Отправитель: Bob Johnson


 Вопрос № 1593

Здрасте уважаемые господа.
Ответье мне на вопрос и/или киньте ссылки на инфу.
Занимаюсь в данный момент исследованием PE-формата. __Задача стоит
такая: пристыковать к имеющемуся EXE-шнику
кусок кода(защиты).
Написал пока процедурку добавления некоего
объекта в таблицу объектов.
Защита (далее З)- это прога (появляется виндовое окошко
с предложением ввести пароль)
Проблемы:
- добавляемый объект ессно должен быть код.
Возможно ли из виндовой проги З сделать *.com? Если нет, то как корректно достать код из проги З?
- блок защиты использует API.
Как их вызывать, находясь в защищаемой
проге? Вообще по-русски кто-нить может объяснить
как эти API вызываются, таблицы импортируемых имен, таблицы переходов и т.п.?
- Как работает защита памяти в FLAT режиме?
Просто в PE-файле у объектов есть флаги. Значит ли это, что у объекта кода можно поставить флаг "записываемый объект" и в него можно будет писать?
Если в код нельзя писать,
то по какому принципу работают самомодифицирующиеся проги? (Мне для защиты надо шифрацию реализовать)
З.Ы. Такая каша у меня в голове из-за того что не всегда удается состыковать то, что видишь на практике с тем, что пишут в книжках.
Спасибо.



Вопрос отправлен: 24.10.2002, 02:20
Отправитель: Папа

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Добрый день, Папа!
В двух словах все равно ничего не объяснишь. А может и не стоит заморачиваться - все равно ведь сломают?
Во-первых - какого объекта и в какую таблицу? Ты новую секцию добавляешь? Если да, то посоветую тебе изучить формат РЕ как "Отче наш", иначе дров наломаешь... Да и антивирусы будут ругаться :))))
Можно ли сделать сом? Смотря какой код в этой проге.
С АПИ тоже непростой вопрос. Если есть уже таблица импорта, то твой код может ее и не использовать вообще. Находится адрес kernel32, затем адрес GetProcAddress и все. Дальше любую функцию можно пользовать. Можно модифицировать ИАТ, но это достаточно муторно, хотя если знаешь как, то не так сложно (запутаться легко, правда)
Ага, то что ты называешь объектом принято называть секцией. Если ставишь флаг записываемый - то можешь писать, иначе получишь эксепшн.
Ты вообще подумай, стоит ли овчинка выделки. То, что ты пытаешься сделать отпугнет только начинающего. Тут враз ломаются намного более навороченные защиты - защита от отладки, защита от дампа из памяти, и т.д. и т.п. Если у тебя от этого каша в голове, более сложные вещи тебе без ошибок будет сложновато реализовать...
Так что...

Ответ отправлен: 24.10.2002, 11:50
Отправитель: masquer


Отвечает Dark_Lord

Здравствуйте, Папа!
Код модифицировать можно, только для этого надо снять защиту с сегмента кода, это делается функцией VirtualProtect из kernel32.lib, Процедура использует 4 параметра:
prot = переменная в которой находится степень защиты в настоящий момент,
NewProt = Значение защиты, которое нужно установить,
size = размер блока памяти
addres = offset начала блока
например:
push offset prot
push NewProt
push size
push addres
call VirtualProtection

Ответ отправлен: 24.10.2002, 18:41
Отправитель: Dark_Lord


Отвечает Atmion

Здравствуйте, Папа!
Ну тут тебе просто надо посмотреть литературу по вирусам для Win32, ведь то что ты хочешь - это не что иное, как дописывание в файл нового фрагмента кода по "вирусному принципу". Кстати, если прога, в которую ты хочешь добавить защиту, имеет где-то внутри себя контрольную сумму, и проверяет свою целостность при запуске, тебе придется выяснить алгоритм ее вычисления, иначе после модификации прога откажется работать. Можно ли из виндовой проги сделать com-файл? Если размер проги больше 64 Кб - то нельзя, если меньше, то... нет, ну ты представь этот процесс - ты берешь PE-файл, рассчитанный на плоскую модель памяти защищенного режима, и пытаешься превратить его в COM-файл, разработанный для сегментной модели памяти реального режима процессора. Да еще он вообще не имеет формата (заголовка и разных служебных таблиц), а является просто двоичным образом программы - "голый" код и данные. Из из него просто нельзя будет вызвать функции Win32API, а значит придется заменять их на эквиваленты функций ДОСа... Бррр. Не думаю, что такая переделка может получиться, а если и получится, то ТРУДОЕМКОСТЬ выйдет такая, что проще написать с нуля новую прогу, чем переделывать PE-формат в COM-формат.
Защита памяти во flat-режиме (а точнее во flat-модели памяти) работает на уровне страниц. Ну там в элементах таблиц страниц есть бит U/S (User/Supervisor). Если бит U/S = 0, то это супервизорная страница, и содержащийся в ней код может обращаться к любым другим страницам, как к пользовательским, так и супервизорным, а если бит U/S = 1, то это пользовательская страница, и содержащийся в ней код может обращаться ТОЛЬКО к другим ТАКИМ ЖЕ пользовательским страницам. Еще в элементе таблицы страниц есть бит R/W. Если этот бит = 0, то страница доступна только для чтения, а если бит = 1, то страница доступна для чтения и записи. (Примечание: хотя только в дескрипторе сегмента можно указать ТИП сегмента - сегмент кода, а в элементе таблицы страниц НЕТ бита, указывающего что страница содержит код, страница, доступная ТОЛЬКО ДЛЯ ЧТЕНИЯ, приравнивается процессором к странице с кодом)
Самомодифицирующийся код может существовать в защищенном режиме благодаря алиасным (альтернативным) дескрипторам сегментов. Вот есть сегмент кода, описывающий конкретную область линейного адресного пространства, и в него нельзя ничего записать (в лучшем случае можно только считать код). Значит надо создать другой дескриптор, который опишет ТУ ЖЕ САМУЮ область адресного пространства, но это будет дескриптор сегмента данных, и причем с разрешенной операцией записи. Вот собственно и все.

Ответ отправлен: 27.10.2002, 04:17
Отправитель: Atmion


 Вопрос № 1594

Приветствую Вас уважаемые эксперты!
Помогите разабратся с WSAStartup , если задаю версию 100H
выдает ошибку что версия ненайдена, если 101H то программа DIALOG1 вызвала сбой при обращении к странице памяти
в модуле MSWSOCK.DLL по адресу 015f:7b087ac3.
Заранее сапосибо.Александр



Вопрос отправлен: 24.10.2002, 10:37
Отправитель: Александр

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Приветствую Вас, Александр!
Скинь мыло, вышлю исходник Iczelion'а, закачка файлов по HTTP. Там WSA используется...
Gibbel@narod.ru

Ответ отправлен: 24.10.2002, 11:10
Отправитель: Gibbel


Отвечает masquer

Приветствую Вас, Александр!
Или исхоный текст в студию, или грузи в отладчик и там смотри - в исходнике ошибка.

Ответ отправлен: 24.10.2002, 11:23
Отправитель: masquer


Отвечает Bob Johnson

Здравствуйте, Александр!
У меня в ХР никаких ошибок система сама не выводит. Просто функция WSAStartup при версии 100h возвращает ошибку. А при версии 101h - она выполняется нормально, и другие - тоже нормально. Так что пробуй либо версию 202h (это начиная с вин 98), либо смотри, что не так в твоей системе.


Ответ отправлен: 25.10.2002, 14:18
Отправитель: Bob Johnson


 Вопрос № 1595

Всем привет!
Почему прога может валиться в 98-ой, хотя работает в XP. А именно валится в
Kernel32.dll, отладчик ошибку показывает тут (3-я строчка сверху):
BFF73635 74 04 JE SHORT KERNEL32.BFF7363B
BFF73637 65:FF56 08 CALL DWORD PTR GS:[ESI+8]
BFF7363B 8BE7 MOV ESP,EDI
BFF7363D 33C9 XOR ECX,ECX
BFF7363F 8EE9 MOV GS,CX ;
Modification of segment register
BFF73641 5F POP EDI
BFF73642 5E POP ESI
BFF73643 C9 LEAVE
BFF73644 C2 0C00 RETN 0C
Кто возьмется попробовать мне помочь, могу выслать саму прогу, сырец или
кому еще чего потребуется для этого. Я в тупеке. Может есть определенные
правила, типа, это можно делать тут, а там нельзя, а это наоборот... Хэлп!



Вопрос отправлен: 24.10.2002, 17:30
Отправитель: -=TT=- (KunaevNA@PosolskyDom.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, -=TT=-!
Скорее всего в твоей программе неправильно вызывается какая-то API функция. ХР это еще выносит, а 98 - нет. Ты прав - высылай исходник сюда (если он не супер большой).
На счет правил - просто в NT-образных системах всегда поддерживается больше различных примочек, чем в 98-м. Это может послужить причиной. А по твоему куску кода сказать практически ничего нельзя. Хотя бы сказал, какая функция API вызывается.


Ответ отправлен: 25.10.2002, 14:18
Отправитель: Bob Johnson


Отвечает masquer

Доброе время суток, -=TT=-!
Не вижу ни одно довода в пользу вообще какого бы то ни было использования сегментных регистров под виндами. Разве что какой-то хитрый драйвер. Не используй, да и все. Ну вышли сырец на masquer@pochta.ws. Если в течение часа вышлешь - сегодня посмотрю...

Ответ отправлен: 24.10.2002, 18:13
Отправитель: masquer


Отвечает oleg

Здравствуйте, -=TT=-!
ты прав пистолет.
XP и 98 как небо и земля!
как мальчики и девочки.
шли разберемся.


Ответ отправлен: 24.10.2002, 17:46
Отправитель: oleg



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (41)
C / C++ (28)
Perl (4)
Delphi (17)
Pascal (24)
Basic / VBA (7)
Java / JavaScript (8)
PHP (6)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (21)
"Железо" (29)
Поиск информации (13)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (12)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (5)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное