Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 440
от 12.12.2002, 01:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2114 Отправлено ответов: 6488 Активность: 306.9 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Broken Sword Статус: Профессиональный Общий рейтинг: 128.3 URL: моя рассылка по Protected Mode [Подробней >>] |
ASMодей Статус: Профессиональный Общий рейтинг: 119.56 [Подробней >>] |
keleb-glin Статус: Доверительный Общий рейтинг: 115.54 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 153.24 [Подробней >>] |
igorash Статус: Профессиональный Общий рейтинг: 115.23 Телефон: 8(903)251-86-01 [Подробней >>] |
baldr Статус: Профессиональный Общий рейтинг: 114.49 URL: Сайт об ОС DOS. Всем, кто любит эту ОС! [Подробней >>] |
Portnov Статус: Профессиональный Общий рейтинг: 115.82 URL: Мой сайтик... [Подробней >>] |
St Статус: Опытный Общий рейтинг: 115.93 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 138.6 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 150 [Подробней >>] |
Andrew Vext Статус: Доверительный Общий рейтинг: 108.59 [Подробней >>] |
Sensey Статус: Профессиональный Общий рейтинг: 122.41 URL: Страничка рассылки по Паскалю Телефон: +38 (0572) 41-76-04 дом. [Подробней >>] |
LIFO Статус: Профессиональный Общий рейтинг: 122.33 URL: наш сайт Телефон: 8 01710 24758 [Подробней >>] |
Dark_Lord Статус: Профессиональный Общий рейтинг: 122.94 [Подробней >>] |
nix Статус: Опытный Общий рейтинг: 103.58 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2050. Здравствуйте! У меня вопрос по поводу CR4 почему ошибка:"undefined symbol:CR4" mov ... (ответов: 5)
Вопрос № 2051. У меня есть программа, которая отлична работает под MS VC++ (считывает заводской серийник винта). Он... (ответов: 1)
Вопрос № 2052. Дарова. У меня вот появились вопросы. 1) Если компьютер оперирует тока двоичной системой счисления, ... (ответов: 5)
Вопрос № 2053. Добрый день. В одном из последних ответов Вы сказали, что надыбали доков про ОС и/или прерываниям. Е... (ответов: 1)
Вопрос № 2054. Здравствуйте. В одном из последних ответов Вы сказали, что надыбали доков про ОС и/или прерываниям. ... (ответов: 1)
Вопрос № 2056. Требуется прога на Assembler, которая посылает в файл вводимые с клавиатуры символы и останавливающа... (ответов: 3)
Вопрос № 2057. Добрый день. odin80@xakep.ru... (ответов: 2)
Вопрос № 2058. В дополнение ответа baldr на вопрос 2014. Bob Johnson! Пока не ВЫЛОЖИЛ лабораторные кинь, пожалуйста... (ответов: 1)
Вопрос № 2059. Уважаемые эксперты прошу вас ответить (мне ламеру 13летнему) на такой вопрос!!! Объясните мне как ра... (ответов: 3)
Вопрос № 2060. Здравствуйте,ув. эксперты! В ДОС-е есть прерывания int 25h и int 26h: соотв. чтение/запись логически... (ответов: 5)
Вопрос № 2061. Всем доброе время суток!!! Недавно попал в руки старый журнал "хакер" за сентябрь месяц. Т... (ответов: 6)
Вопрос № 2063. Вот если прога запакована автоматическим распоковщиком, когда она разархевируется и попадает в памят... (ответов: 4)
Вопросов: 12, ответов: 37
Вопрос № 2050 |
Здравствуйте!
У меня вопрос по поводу CR4 почему ошибка:"undefined symbol:CR4"
mov EAX,CR4
or EAX,00000010h
mov CR4,EAX
Каким образом можно поменять флаг PSE в регистре CR4 для использования 4Мб-ой страницы?
Процессор:Celeron 667
MASM v.6.1
Спасибо.
pasha_12@mail.ru
Вопрос отправлен: 07.12.2002, 02:55
Отправитель: Pasha
[Следующий вопрос >>] [Список вопросов]
Отвечает Broken Sword
Добрый день, Pasha!
а хрен его знает... в ТАСМ-е та же фигня - он видит только CR0, CR2 и CR3. Но извратиться можно так:
db 0Fh,20h,0E0h ; mov EAX,CR4
or EAX,00000010h
db 0Fh,22h,0E0h ; mov EAX,CR4
p.s. TD зато отображает все корректно, у борланда почему то отладчик всегда летит впереди планеты всей, а ассемблер отстает года на два-три.
Ответ отправлен: 07.12.2002, 10:31
Отправитель: Broken Sword
Отвечает ASMодей
Добрый день, Pasha!
Может ты забыл указать букву 'p' после типа процессора, ведь
регистр CR4 доступен только для привиллегированных команд.
Ответ отправлен: 07.12.2002, 15:49
Отправитель: ASMодей
Отвечает keleb-glin
Приветствую Вас, Pasha!
Знаешь, у меня всё работает. Но только с директивой .586
Ответ отправлен: 08.12.2002, 20:24
Отправитель: keleb-glin
Отвечает Bob Johnson
Доброе время суток, Pasha!
Укажи MASM'у тип процессора:
p586
mov eax, cr4
Ответ отправлен: 09.12.2002, 20:53
Отправитель: Bob Johnson
Отвечает igorash
Приветствую Вас, Pasha!
1. А ты написал в начале кода директиву .686 ???
Ответ отправлен: 07.12.2002, 04:50
Отправитель: igorash
Вопрос № 2051 |
У меня есть программа, которая отлична работает под MS VC++ (считывает заводской серийник винта). Она состоит из кода на С++ и ассемблерных вставок. Я хочу использовать одну из функций этой программы под CBuilder 6.0, но борландовский компилятор указывает на строку "_asm Call FWORD PTR [CallgateAddr]" и говорит "[C++ Error] diskid32.cpp(495): E2329 Invalid combination of opcode and operands".
Не подскажете, как это исправить? Различия возникают из-за различий между tasm и masm?
P.S. Полный код программы приложить не удалось, так как он превышает допустимый размер. Могу выслать любому по почте, мой e-mail: TanaT@hotmail.ru
Вопрос отправлен: 07.12.2002, 11:08
Отправитель: TanaT (TanaT@hotmail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает baldr
Здравствуйте, TanaT!
А ты попробуй написать без подчеркивания! TASM и MASM тут не при чем. Просто MS и Borland
опять не сошлись в стандартах. И попробуй написать просто
asm Call CallgateAddr
.Ответ отправлен: 08.12.2002, 00:32
Отправитель: baldr
Вопрос № 2052 |
Дарова.
У меня вот появились вопросы.
1) Если компьютер оперирует тока двоичной системой счисления, то почему когда я открываю из оболочке FAR прогу, она представлена в шестнадцатеричной системе? Или это FAR специально преобразовывает?(чтобы удобнее было)
2) Вот дан код
в di указатель на последовательность символов
bx=0h
ax=0A0Dh
***********************
....
mov cl, 9
@e:
mov bl, cs:[di]
add bl, cs:[di+1]
add ax, bx
inc di
loop @e
.....
***********************
в конце ax должно получиться
ax=F1Bh
Я угадал эту последовательность(указатель на которую в di). То есть мудился подсчитывал и т.д. А какую мона процедурку написать чтобы она сама находила эту последовательность?
И какой вобще алгоритм нахождения кода(последовательности), т.е. например, если нам дана конечная сумма и задано кол-во символов(т.е. кол-во повторений в цикле) как мона узнать эту последовательность? Т.е. алгоритм процедуры?
3) Вот например когда прогу упаковывают, т.е. уменьшают её размер, автоматическим распаковщиком, в памяти она будет прежней? Т.е. распаковщик, распаковывает прогу в её первоночальный вид и посылает её в память? Ведь дизассемблер ИДА как раз и дизассеблирует, как бы, прогу в памяти?! Тогда почему он ерунду показывает? Т.е. она же распаковщиком привелась в нормальный вид и следовательно в ИДА должна нормально выглядеть?! Чё я не пойму!? Объясните плиз!
4) Дана прога
masm
model tiny
.stack 256h
.data
message db 'Привет$'
.code
start:
mov ax,@data
mov ds,ax
mov ah,09h
mov dx,offset message
int 21h
int 20h
end start
(с помощью пакета tasm)
а) Делаю объекный модуль - всё ок
б) Линкую...(с дерективой ) Выдаёт ошибку - "FATAL:Cannot generete COM file: stack segment present". Чё это за бяка такая и где тогда ошибка в проге!?
5) Чё такое физические, линейные, логические и виртуальные адреса? И чем они друг от друга различаются?
Заранее, всем пасиба!
Вопрос отправлен: 07.12.2002, 13:57
Отправитель: Пупс
[Следующий вопрос >>] [Список вопросов]
Отвечает Portnov
Здравствуйте, Пупс!
1) Да, чтобы удобней было...
4) COM-формат не поддерживает директиву .stack! Просто уберите эту строчку, и усе... Хотя еще может быть бяка, я не помню, понимает ли tasm/tlink директивы .code, .data в COM-файле... Короче, если после убирания директивы .stack еще чего-то будет ругаться, уберите строки с .code и .data, а строку с message db... поставьте после int 20h. Да, и "mov ax,@data; mov ds,ax" в COM-Формате не имеют никакого смысла! уберите это нафиг.
5) У-у.., это к Broken Sword'у, к его рассылке... Там все расписано.
С уважением, Portnov.
Ответ отправлен: 07.12.2002, 17:13
Отправитель: Portnov
Отвечает St
Привет, Пупс!
1) Да
2)
>И какой вобще алгоритм нахождения кода
>(последовательности), т.е. например, если нам дана
>конечная сумма и задано кол-во символов(т.е. кол-во
>повторений в цикле) как мона узнать эту
>последовательность? Т.е. алгоритм процедуры?
По-моему (если я вас правильно понял) существует большое количество последовательностей сумма символов которых быдер равна требуемой, и чем больше длина последовательности тем сложнее перебрать их все, в поисках нужной. Или вам подойдет любая, лишь бы сходился результат? Тогда поделите сумму на число сиволов, и полученное частное подставьте во все символы кроме последнего, в который запишите остаток, если он не равен нулю - тогда и в последний символ тоже запишите частное.
3) Дизассемблеры не распаковывают упакованные программы! Они показывают то, что есть в виде файла на диске. Даже дебаггеры это не делают, они просто исполняют код, который где-то в процессе приводит к распаковке исходной программы в памяти (если нет защиты, когда _полный_ код вообще никогда не существует в памяти). Попробуйте найти распаковщик для данного упаковщика.
4) Уберите слова .stack 256h
5) Наверное здесь найдутся люди которые могут вам это объяснить, но мой совет: почитайте какую-нибудь книгу по процессорам, так всё подробно описано.
St
Ответ отправлен: 07.12.2002, 16:37
Отправитель: St
Отвечает Maverick
Приветствую Вас, Пупс!
б) Линкую...(с дерективой ) Выдаёт ошибку - "FATAL:Cannot generete COM file: stack segment present". Чё это за бяка такая и где тогда ошибка в проге!?
Потому что это exe файл. Он пишет, что представлен сегмент стека. Убери опцию /t из линковщика.
Ответ отправлен: 07.12.2002, 14:46
Отправитель: Maverick
Отвечает masquer
Здравствуйте, Пупс!
1. Ну, тут я затрудняюсь тебе ответить...
2. Универсальный?!! Хе-хе, я бы посмотрел на универсальный кейген для всех алгоритмов.
А чего мучиться, если твоя последовательность дополнительно ничем не органичена, то вариантов может быть море
3. Бред сумасшедшего, абсолютно все неверно. Дизассемлер не загруженный модуль дизассемблирует, этим отладчик занимается. И нет гарантии, что в памяти программа после распаковки будет такой же, какой она была до оной.
5. Это вопрос к Broken Sword-у, или его рассылку почитай.
Ответ отправлен: 09.12.2002, 11:36
Отправитель: masquer
Отвечает Andrew Vext
Здравствуйте, Пупс!
1) Ага преобразовывает. А Windows подлюка, вообще вместо нулей и единиц картинки показывает. А вообще - представьте себе как будет выглядеть 32-разрядное число в двоичной форме и зачем его так выводить.
2. Загружаете программу в отладчик, ставите точку прерывания сразу за циклом, выполняете и когда сработает точка прерывания смотрите содержимое регистров в отладчике. Если отладчика нет - напишите программку, которая выведет число из регистра на экран и вызовите ее по завершении цикла.
3. В память программа загружается в упакованном виде (именно так ее и видит дизассемблер). Распаковка выполняется после запуска.
4. Поместите стек, данные и код в один сегмент.
Ответ отправлен: 09.12.2002, 12:07
Отправитель: Andrew Vext
Вопрос № 2053 |
Добрый день. В одном из последних ответов Вы сказали, что надыбали доков про ОС и/или прерываниям. Если не сложно дайте линки, или если их (доков) не так много можно сразу на ящик.
Заранее благодарен.
Вопрос отправлен: 07.12.2002, 15:47
Отправитель: Odin
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Приветствую Вас, Odin!
Хиде это я такое сказал?
Если не ошибаюсь, это Maverik сказал :))
Ответ отправлен: 09.12.2002, 11:38
Отправитель: masquer
Вопрос № 2054 |
Здравствуйте. В одном из последних ответов Вы сказали, что надыбали доков про ОС и/или прерываниям. Если не сложно дайте линки, или если их (доков) не так много можно сразу на ящик.
Заранее благодарен.
Вопрос отправлен: 07.12.2002, 15:59
Отправитель: Dmitry
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Здравствуйте, Dmitry!
Это были доки по написанию ОС.
Если бы ты указал свой мыльник, это было бы просто волшебно.
Или мне как всему narod'у или yandex'у рассылать? :)))
Ответ отправлен: 07.12.2002, 16:06
Отправитель: Maverick
Вопрос № 2056 |
Требуется прога на Assembler, которая посылает в файл вводимые с клавиатуры символы и останавливающая запись при нажатии клавиши ESC.
Вопрос отправлен: 07.12.2002, 16:47
Отправитель: Lexus
[Следующий вопрос >>] [Список вопросов]
Отвечает Sensey
Доброе время суток, Lexus!
А мне нужна прога настройки XR16L784.
Ну и???
Бери пиши...
Почитай www.shegeda.chat.ruxview.zip
Будут вопросы конкретней - пиши...
А требовать - лишнее дело!
Ответ отправлен: 07.12.2002, 18:24
Отправитель: Sensey
Отвечает baldr
Здравствуйте, Lexus!
Если это не очередная лаба, а просто надо такую прогу для себя, то может прокатить такая
штука... Введи в командной строке:
copy con asdf
И набирай текст. В конце нажми
Будет создан текстовый файл asdf, в котором будет все, что ты введешь.
Если тебе надо именно организовать вывод в файл своими руками, то думаю, тебе все равно, если
сначала строка считается в память, а потом запишется в файл? Тогда можно использовать функцию 0Ah
прерывания 21h. Если строка большая, то можно считывать с помощью функций 1, 6, 7, 8 того же прерывания.
Тогда сразу можно записывать в файл. Функция 3Ch создает файл, функция 40h - записывает данные
в файл, а 3Eh - закрывает его. Алгоритм такой: Открываешь файл, в цикле считываешь символ,
проверяешь его на Esc, если нет, то пишешь в файл и снова тело цикла, иначе - закрываешь файл и
завершаешь программу. Все.
Ответ отправлен: 08.12.2002, 00:31
Отправитель: baldr
Отвечает Maverick
Добрый день, Lexus!
Хмм, требуется...
А ты сам не пробовал написать, ведь ничего сложного нет?
Открываешь файл для чтения записи, читаешь его в буфер, затем выводишь приглашение к вводу символа. Сравниваешь, если ESC, то закрываешь файл и на выход, если другой символ, то передвигаешь указатель на конец файла и пишешь в него. Все это в цикле. В досе есть эти функции. Поверь мне, самому писать интереснее, а вот если где нибудь застопоришся, то тогда и спрашивай.
Ответ отправлен: 08.12.2002, 09:35
Отправитель: Maverick
Вопрос № 2057 |
Добрый день. odin80@xakep.ru
Вопрос отправлен: 07.12.2002, 17:57
Отправитель: Dmitry
[Следующий вопрос >>] [Список вопросов]
Отвечает keleb-glin
Спокойной ночи ( keleb-glin@xakep.ru )
Ответ отправлен: 08.12.2002, 20:20
Отправитель: keleb-glin
Отвечает Sensey
Здравствуйте, Dmitry!
И что, туда спама насыпать?
Если конкретно кому-то пишешь - убери галку "Задать вопрос всем экспертам" в форме задания вопроса!
Ответ отправлен: 07.12.2002, 18:26
Отправитель: Sensey
Вопрос № 2058 |
В дополнение ответа baldr на вопрос 2014.
Bob Johnson!
Пока не ВЫЛОЖИЛ лабораторные кинь, пожалуйста, и в меня ими.
Я буду признателен, и разопью баночку пива во благо твоего здоровья.
Спасибо.
Daddy_Karlo@bk.ru
З.Ы.
Приму шпаргалку о:
1 Порядок компиляции под ДОС
2(совсем не понятно)Создание исполняемого файла под Виндос.
Зачем ДЕФ? Как правильно его составить?
Приложение:
Вопрос отправлен: 07.12.2002, 19:38
Отправитель: Deddy Karlo (Deddy_Karlo@bk.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Deddy Karlo!
Кидаю... Тебе там еще никто ничего "хорошего" не сказал за неличный вопрос? :-)
P.S. А вот пивом лучше поделись...
Ответ отправлен: 09.12.2002, 20:53
Отправитель: Bob Johnson
Вопрос № 2059 |
Уважаемые эксперты прошу вас ответить (мне ламеру 13летнему)
на такой вопрос!!!
Объясните мне как распологается прога на ассемблере в регистрах CS и DS????
Ато непонятно везде говорят в рег.CS код проги ,а в рег,Ds
константы ,акак это так???????
Вопрос отправлен: 07.12.2002, 20:00
Отправитель: Radmir (radmir@pisem.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Доброе время суток, Radmir!
В регистре DS-адрес сегмента данных твоей программы,а в CS- адрес сегмента кода твоей программы.
А сегмент - это область памяти, ну это уже совсем другая история...:)
Ответ отправлен: 08.12.2002, 15:04
Отправитель: LIFO
Отвечает baldr
Добрый день, Radmir!
:-00 !! Это кто ж тебя так учил? Руки бы ему оторвать! :-[
Начать мне надо так: память (в реальном режиме) состоит из сегментов. При обращении к любому
участку памяти надо указать номер сегмента (а их размер - 65 Кб) и смещение от его начала в байтах.
Так вот, для адресации можно использовать так называемые сегментные регистры. При размещении программы
в памяти сегмент cs всегда указывает на тот сегмент, в котором находится исполняющийся в данный момент
код. Все остальные сегментные регистры программист может использовать по своему усмотрению, но
обычно сегмент ds настраивают таким образом, чтобы он указывал на сегмент, в котором программа
хранит свои данные. но это совсем не обязательно. Однако, если обращаться к любой именованной
переменной, компилятор думает, что мы обращаемся по смещению в сегменте данных, на который и
указывает ds.
Ответ отправлен: 08.12.2002, 00:30
Отправитель: baldr
Отвечает Maverick
Добрый день, Radmir!
Прога не распологается в этих регистрах :)
Прога распологается в памяти.
Регистр CS указывает на сегмент кода нашей прграмм.
Регистр DS указывает на сегмент данных нашей программы.
В случае com программы они равны, и указывают на тот сегмент памяти, в который загружена наша прога.
Ответ отправлен: 08.12.2002, 09:35
Отправитель: Maverick
Вопрос № 2060 |
Здравствуйте,ув. эксперты!
В ДОС-е есть прерывания int 25h и int 26h: соотв. чтение/запись логических секторов. НО. Номер сектора передается в 16-разрядном регистре DX.
Вопрос: Есть ли альтернатива этим функциям, позволяющая передавать номер сектора больше 65535 (напр., 32 разрядами)?
Заранее спасибо!
Вопрос отправлен: 07.12.2002, 22:36
Отправитель: Deus
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Здравствуйте, Deus!
Есть - ПОРТЫ!!!
Ответ отправлен: 08.12.2002, 15:20
Отправитель: LIFO
Отвечает St
Привет, Deus!
ДОС есть ДОС с его ограничениями. Например примечание к описанию этого прерывания:
"Главная корневая запись и любые другие секторы вне раздела DOS недоступны через этот сервис. прерывание INT 13H - это единственный сервис, который предоставляет полный доступ к любой части твердого диска".
St
Ответ отправлен: 09.12.2002, 19:43
Отправитель: St
Отвечает keleb-glin
Приветствую Вас, Deus!
Тебе надо при вызове int 25/26h положить в cx не кол-во читаемых секторов, а 0ffffh, а в ds:bx - адрес структуры данных AbsDiskIORec, в которой:
смещение размер что класть
+0 4 адрес первого читаемого сектора
+4 2 количество секторов
+6 4 ДАЛЬНИЙ адрес буффера чтения/записи
как видишь, адрес сектора - 32 - разрядный.
Ответ отправлен: 08.12.2002, 20:20
Отправитель: keleb-glin
Отвечает Maverick
Приветствую Вас, Deus!
Наверное придется пользоваться int 13h
Ответ отправлен: 08.12.2002, 09:35
Отправитель: Maverick
Отвечает Dark_Lord
Добрый день, Deus!
int 13h, но там совсем другое дело, вообще, самый лучший способ через порты в/в. А 32 - битными переменными ты вообще не особо сможешь в досе пользоваться.
Ответ отправлен: 08.12.2002, 12:56
Отправитель: Dark_Lord
Вопрос № 2061 |
Всем доброе время суток!!!
Недавно попал в руки старый журнал "хакер" за сентябрь месяц. Там в статье про асемблер говориться что ан компакте к журналу есть переведенный на русский туториал Айсзилиона , к сожалению ни компакт ни журнал мне преобрести не удалось, так что если у кого есть поделитесь в свою очередь есть интересная инфа которой могу обменяться...
Спасибо
Подводная лодка.
з.ы. на сайт xakep.ru ходил там у них только за ноябрь месяц архив лежит
Вопрос отправлен: 07.12.2002, 23:31
Отправитель: u-777 (u-777@ukr.net)
[Следующий вопрос >>] [Список вопросов]
Отвечает LIFO
Доброе время суток, u-777!
Делюсь.
Ответ отправлен: 08.12.2002, 15:08
Отправитель: LIFO
Отвечает St
Привет, u-777!
У меня есть этот файл, но он, насколько я помню, довольно большой и по почте его кидать сложно. Если есть другие варианты, мой мэйл - st23@yandex.ru
St
Ответ отправлен: 09.12.2002, 19:46
Отправитель: St
Отвечает keleb-glin
Здравствуйте, u-777!
Мануал Айсзелиона весит 1044кб. Если хочешь - напиши, я вышлю. ( keleb-glin@xakep.ru )
Ответ отправлен: 08.12.2002, 20:10
Отправитель: keleb-glin
Отвечает Maverick
Добрый день, u-777!
Есть такой туториал.
Погляди на www.wasm.ru
Там есть.
Ответ отправлен: 08.12.2002, 09:35
Отправитель: Maverick
Отвечает baldr
Добрый день, u-777!
На русском они есть на www.wasm.ru.
Ответ отправлен: 09.12.2002, 00:05
Отправитель: baldr
Отвечает nix
Добрый день, u-777!
Посмотри на wasm.ru:-)
Ответ отправлен: 09.12.2002, 04:57
Отправитель: nix
Вопрос № 2063 |
Вот если прога запакована автоматическим распоковщиком, когда она разархевируется и попадает в память в нормальном же виде?! И получается отладчик СофтАйс должен её видеть в нормальном виде? мы же программу отлаживаем в памяти?!
И дизассембер ИДА я заметил даёт смещение как в памяти?
объясните мне плиз про эти упаковщики и дизассемблеры и отладчики. Т.е. хотя бы вобщем.
Вопрос отправлен: 08.12.2002, 00:48
Отправитель: Пупс
[Следующий вопрос >>] [Список вопросов]
Отвечает St
Привет, Пупс!
В память попадает копия с диска и она распаковывается уже в процессе работы программы, так что получить ее в распакованном виде можно если протрассировать программу до того места когда она полностью распакуется. Тогда и надо брать дамп памяти и получать исходную программу (если конечно нет защиты).
St
Ответ отправлен: 09.12.2002, 19:55
Отправитель: St
Отвечает Bob Johnson
Доброе время суток, Пупс!
Она загружается в память вначале запакованной. А потом распакующий код (которому передается управление после загрузки) распаковывает ее уже прямо там. Чтобы увидеть в soft ice распакованный вид проги, в общем случае, надо поставить break на API функцию, которую вызовет программа после распаковки. Обычно это GetModuleHandle, CreateWindow(Ex), RegisterClass и т.д.
Ответ отправлен: 09.12.2002, 20:56
Отправитель: Bob Johnson
Отвечает baldr
Добрый день, Пупс!
Автоматический распаковщик получает управление первым. Он распаковывает в память код проги
и передает ей управление. Отладчики анализируют код в памяти, следовательно, уже распакованный
и полный.
Ответ отправлен: 09.12.2002, 00:04
Отправитель: baldr
Отвечает masquer
Приветствую Вас, Пупс!
прога запакована автоматическим распоковщиком
Запакована распаковщиком??? :))))))) Сам понимаешь - дальше и запутаться можно. Для начала почитай статьи, например, с reversing.net, а то мы на разных языках говорим :)))
Ответ отправлен: 09.12.2002, 11:43
Отправитель: masquer
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (40) C / C++ (29) Perl (6) Delphi (22) Pascal (24) Basic / VBA (9) Java / JavaScript (9) PHP (4) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (30) Windows NT/2000/XP (21) "Железо" (29) Поиск информации (12) |
Администратору Windows NT/2000/XP (10) Linux / Unix (14) |
Юристу Гражданское право (10) Семейное право (3) Трудовое право (6) КоАП (3) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||