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

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


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

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

Выпуск № 488
от 07.02.2003, 23:20

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


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

masquer
Статус: Профессиональный
Общий рейтинг: 145.4
[Подробней >>]
Igoryk
Статус: Профессиональный
Общий рейтинг: 139.89
URL: IgorykSoft
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 126.02
URL: моя рассылка по Protected Mode
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.51
URL: Программирование
[Подробней >>]
DiGiT[old]
Статус: Профессиональный
Общий рейтинг: 109.92
[Подробней >>]
Илья
Статус: Доверительный
Общий рейтинг: 107.74
[Подробней >>]
 
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.49
[Подробней >>]
St
Статус: Опытный
Общий рейтинг: 111.01
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 113.58
URL: Мой сайтик...
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 139.27
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Joy
Статус: Начальный
Общий рейтинг: 121.66
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 109.3
URL: мощный файловый архив
[Подробней >>]
 
Топор
Статус: Доверительный
Общий рейтинг: 111.22
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.48
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.21
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 121.05
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]


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

Вопрос № 2563. вопрос ко всем экспертам. есть некая виндовая программа, которая обращается к файлу ххххх.set файл ... (ответов: 5)
Вопрос № 2564. Здравствуйте эксперты! 1. Можно ли по 9x реализовать сниффер?, Если да, то как? Все сырцы что смотре... (ответов: 1)
Вопрос № 2565. Добрый день... Этот вопрос не раз задавался.... но поискав по базе так нормального ответа ненашёл...... (ответов: 3)
Вопрос № 2566. Здраствуйте дорогие эксперты, давно я здесь не появлялся, сразу извинюсь за то что послал этот воп... (ответов: 2)
Вопрос № 2567. Здравствуйте! Пишу программу на Masm32? что не принципиально важно :) Есть ли программа создающая ди... (ответов: 6)
Вопрос № 2568. Доброе время суток уважаемые эксперты! Наконец то я разобрался со своим несчастным АЦП. Спасибо всем... (ответов: 1)
Вопрос № 2569. >Если вы не знакомы с Ассемблером вообще, то, скачав архив рассылок с сайта >http://asm.kalashnikof... (ответов: 4)
Вопрос № 2571. 1. Меня всегда интересовало, как программы-взломщики ломают игры. Я провел маленький тест программой... (ответов: 5)
Вопрос № 2572. Доброе время суток, уважаемые эксперты. У меня следующий вопрос: если откомпилировать одни и теже ис... (ответов: 3)
Вопрос № 2575. Ну я и идиот... :) Я как всегда все не так объяснил... Блин. Вот что значит, невнимательность. Прошу... (ответов: 4)
Вопрос № 2576. Здравствуйте, уважаемые эксперты! Как можно удалить защищённый файл? Если файл является read only ил... (ответов: 4)
Вопрос № 2578. Тов. эксперты,пропихните эту ссылку в массы и они вас не забудут. http://www.dore.ru/library/reveng/... (ответов: 4)
Вопрос № 2579. Мир вам, эксперты. Подскажите, какую-нибудь прогу assembler'а поновее (а то моя с глюком и работать ... (ответов: 3)
Вопрос № 2580. Доброго времени суток всем! Это не вопрос а просто ссылка как мне показалось неплохая: http://datare... (ответов: 3)

Вопросов: 14, ответов: 48


 Вопрос № 2563

вопрос ко всем экспертам.
есть некая виндовая программа, которая обращается к файлу ххххх.set
файл этот или "заксёрен" или как-то по другому прикрыт, по крайней мере ничего читабельно там не просматривается.
если этот файл убить, то программа запускается, но ругается об отсутствии этого файла. если подставляю такой-же файл, но созданый предылущей версией программы, то ругается о неверном файле.
как отследить из под виндового айса обращение к этому файлу(на что поставить брекпойнт).



Вопрос отправлен: 03.02.2003, 00:52
Отправитель: алекс

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

Отвечает masquer

Добрый день, алекс!
CreateFile, ReadFile
_lcreat, _lread

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


Отвечает Igoryk

Приветствую Вас, алекс!
Это смотря какое обращение. Просмотри все функции, которые использует программа и найди там такие, чтобы заканчивались на ...file (OpenFile, CreateFile и т.п.).

Ответ отправлен: 03.02.2003, 14:26
Отправитель: Igoryk


Отвечает Broken Sword

Добрый день, алекс!
bpx createfilea
bpx readfilea (readfile)
в подобных случаях (когда не знаешь названия API) отдизасмь экзешник и найди все API, содержащие слово 'file'


Ответ отправлен: 03.02.2003, 07:26
Отправитель: Broken Sword


Отвечает Bob Johnson

Приветствую Вас, алекс!
CreateFile - открывает файл на чтение. ReadFile - читает данные из файла. CloseFile - закрывает, соответственно.


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


Отвечает DiGiT[old]

Приветствую Вас, алекс!
1) пробуй на CreateFile(это не создание, а открытие файла), ReadFile. WriteFile

Ответ отправлен: 03.02.2003, 02:51
Отправитель: DiGiT[old]


 Вопрос № 2564

Здравствуйте эксперты!
1. Можно ли по 9x реализовать сниффер?, Если да, то как?
Все сырцы что смотрел, под NT/XP/2k.
По возможности кинте прямым линком на исходник.
2. Вопрос касательно firewall'a. С какой стороны подойти
к написанию оного? Драйвер писать, или на более высоком уровне
осуществимо?
3. Как ручками сформировать IP пакет? Похоже, что под 2k это
можно, а под 9х? Опять драйвер писать? Тут вроде как профессионалы
говорят, что "нет", а вы как думаете?
ЗЫ: По возможности не отправлять сразу на torry.net, мотивируя тем
что "там где-то было" :))
Спасибо!
--
Atma



Вопрос отправлен: 03.02.2003, 01:02
Отправитель: Atma

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

Отвечает masquer

Доброе время суток, Atma!
2. ключевое слово - ndis драйвер

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


 Вопрос № 2565

Добрый день...
Этот вопрос не раз задавался.... но поискав по базе так нормального ответа ненашёл....
Можно ли перехватить API ф-цию (hook API)?
иесли можно.... то как?
Скажите хоть в какую сторону копать.....
...говорят можно через VxD.....

Спасибо...



Вопрос отправлен: 03.02.2003, 02:11
Отправитель: p A c U (pacu@mail.ru)

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

Отвечает masquer

Доброе время суток, p A c U!
Можно. Через внедрение длл, через патч ИАТ, через драйвер... вариантов полно. Смотри Рихтера, смотри сайт EliCZ'a

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


Отвечает Bob Johnson

Доброе время суток, p A c U!
Под 9х можно для всех процессов системы. Да, через VxD. Вся фишка в том, что все API функции находятся в библиотеках, которые загружены в верхнюю часть памяти (1 или 2 Гб сверху, не помню), которая одинакова для всех процессов. Но ты никак на 3-м кольце защиты не получишь селектор, который бы давал тебе права записи туда (даже VirtualProtect тут не поможет). Поэтому ты определяешь адрес функции (GetProcAddress), передаешь его vxd, который работает на 0-м кольце и имеет права на запись во все 4 гб адресного пространста. А вот vxd в свою очередь замещает код в API на нужный тебе, который находится внутри этого VxD. все будет ОК, потому что vxd также загружается в верхний блок памяти.
Обычно код функции заменяют на
push [myaddr]
ret
что занимает 6 байт (кажется). Так что берут несколько начальных команд функции (дизассемблируют соотв. файлы), переносят их в свой обработчик и заменяют на push ret.
Под NT можно для своего процесса, или для одного другого за раз (если права есть) - VirtualProtect и VirtualProtectEx, затем обычная запись в это место.


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


Отвечает Илья

Приветствую Вас, p A c U!
http://www.codenet.ru/progr/other/spyapi.php


Ответ отправлен: 03.02.2003, 03:19
Отправитель: Илья


 Вопрос № 2566

Здраствуйте дорогие эксперты, давно я здесь не появлялся,
сразу извинюсь за то что послал этот вопрос еще и в тему асма, просто экспертов побольше, да и вопрос их тоже касается.
Взялся писать свой эксплорер для винды(кот, заменяет панель - пуск) на VB, ну захотелось его приукрасить консолью, как в квэйк 1,2,3, ну или как в линуксе.
Вопрос: Как в виндозе действует перенаправление вывода, например в досе можно было сделать так "dir > text.txt" и все что на экране, то в файл, или даже в прогамму другую перенаправить можно, Дык вот мне надо виндовые проги под типа NET, NBTSTAT, и досовские команды, чтоб на мою консоль свой вывод отправляли( т.е. я в консоли ввел "dir" и у меня на консоли все отобразилось, а не запустилось досовское окно и потом закрылось), я думаю там перехватывать что то надо, а что не знаю. Это вообще реально?
Если можно поподробнее, или APIшку какую подскажите, у себя в маленьком руском списке не нашел.
Огромное вам спасибо.
A.Undegro



Вопрос отправлен: 03.02.2003, 09:47
Отправитель: Undegro (undegro@mail.ru)

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

Отвечает Bob Johnson

Здравствуйте, Undegro!
Если уж взялся за такое дело, то VB - это не лучший выбор. Здесь лучше VC, но это уже твое дело.
1. Поставь себе MSDN, потому что функций тебе надо будет не мало.
2. Ничего перехватывать не надо. Запускают программы обычно CreateProcess. У него есть такой параметр, как ссылка на StartupInfo - в ней есть три поля: hStdInput, hStdOutput и hStdError - соотв. три хэндла на устройства для стандартного ввода, вывода и вывода ошибок. Ты просто создаешь файл, в который хотел бы получить выведенную программой информацию (CreateFile) - не забудь в lpSecurityAttributes->bInheritHandle поставить true, т.к. этот файл (т.е. хэндл) должен будет наследоваться процессом, который ты запустишь. Далее запускаешь процесс (CreateProcess), указав bInheritHandles=true, CREATE_NEW_CONSOLE, а в StartupInfo (кроме 3 хэндлов) dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW и wShowWindow = SW_HIDE. Тогда консоль не появится на экране, а будет невидимой и ты получишь все выводимые данные в файл.
Но! Это все работает ОК только если процесс выводит в stdoutput с помощью WriteFile. Если же используется WriteConsole - то ничего ты не получишь (т.к. она не допускает перенаправления). Но тебя это не сразу коснется (редкие проги так работают).
Я тут недавно решил написать HTTP server, в нем есть такая же задача как у тебя - запускать cgi скрипт, а то, что он выведет в stdout передавать через socket клиенту. Весь мой труд (14кб exe и 40 кб исходного кода) выложен на моей странице - если хочешь, посмотри. Написано все на MS VС++. Адрес:
bobjohnson.nm.ru


Ответ отправлен: 04.02.2003, 00:00
Отправитель: Bob Johnson


Отвечает Igoryk

Доброе время суток, Undegro!
Используй функцию ConsoleRead.

Ответ отправлен: 03.02.2003, 14:26
Отправитель: Igoryk


 Вопрос № 2567

Здравствуйте! Пишу программу на Masm32? что не принципиально важно :) Есть ли программа создающая диалоговое окно в виде RC файла визуально (т.е. как в Delphi или Visual C++ кнопочки и edit'ы таскать, потом сохранить в RC и скомпилить в Masm32) . Фу... Надеюсь правильно разъяснил. До свидания!



Вопрос отправлен: 03.02.2003, 10:10
Отправитель: CanBlow (CanBlow@fromru.com)

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

Отвечает Andrew Vext

Здравствуйте, CanBlow!
Visual Studio.

Ответ отправлен: 03.02.2003, 13:21
Отправитель: Andrew Vext


Отвечает masquer

Приветствую Вас, CanBlow!
А чем тебя входящий в IDE VS не устраивает, я так и делаю...

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


Отвечает Bob Johnson

Приветствую Вас, CanBlow!
Раз уж у тебя есть VC++, то возьми его редактор ресурсов, создай в нем окно (какое тебе нужно) и сохрани туда, куда надо. VC тебе и создаст *.rc файл.


Ответ отправлен: 04.02.2003, 00:01
Отправитель: Bob Johnson


Отвечает DiGiT[old]

Добрый день, CanBlow!
ну ты и маньяк :)) Тем же визуал С++ редактором ресурсов его и создавай :)) А в делфи там не такой редактор(не ресурсы, а объекты)

Ответ отправлен: 04.02.2003, 02:02
Отправитель: DiGiT[old]


Отвечает St

Привет, CanBlow!
Вы сами ответили на свой вопрос - Visual C++ - создайте диалоговое окно или другие ресурсы и сохраните в rc файле. rc файлы C и masm одни и те же.
St

Ответ отправлен: 04.02.2003, 12:38
Отправитель: St


Отвечает Portnov

Здравствуйте, CanBlow!
Берите Symantec Resource Studio - правда, глюков немало, зато умеет делать не только диалоги, но и иконки, курсоры и прочее... Есть еще Borland Resource Workshop, но он 16-битный, и не всегда созданные им файлы можно скомпилить 32-х разрядным компилятором.
С уважением, Portnov.

Ответ отправлен: 05.02.2003, 11:29
Отправитель: Portnov


 Вопрос № 2568

Доброе время суток уважаемые эксперты!
Наконец то я разобрался со своим несчастным АЦП.
Спасибо всем, кто хоть как то пытался мне помочь с этой проблемой.
Теперь оно работает нормально. Но вот возникла новая проблема, которую я наверное так скоро не решу.
Прога написана в БИЛДЕРЕ, система 98, обращение к порту - с помощью ассемблерных вставок.
Когда мы на вход АЦП подаём постоянный сигнал, всё нормально, строит прямую линию, как нужно.
Но когда мы на вход подаём синусоиду, тут то всё и начинается. Период непостоянный и появляются выбросы по амплитуде. Запускали ДОСовскую программу, всё нормально, синусоида. Возможно это система портит данные?
Подскажите что делать.
Заранее благодарю.
Рифат.



Вопрос отправлен: 03.02.2003, 11:50
Отправитель: Рифат (abriofh@mail.ru)

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

Отвечает Bob Johnson

Приветствую Вас, Рифат!
ДОС - однозадачная система. Если ты там запустишь программу, то все время процессора (минус обработчики прерываний) будет отдано твоей проге. Windows - нет, поэтому период, с которым вызывается функция чтения данных их порта может изменяться. Все зависит от частоты вызова этой функции.
В общем, попробуй после получения новых данных от АЦП вызывать какую-либо функцию получения текущего времени (например GetTickCount или QueryPerformanceCounter) для того, чтобы правильно разместить полученное значение во времени.


Ответ отправлен: 04.02.2003, 00:01
Отправитель: Bob Johnson


 Вопрос № 2569

>Если вы не знакомы с Ассемблером вообще, то, скачав архив рассылок с сайта
>http://asm.kalashnikoff.ru/dos, вы постигните азы программирования, а наши эксперты
ответят на все интересующие вас вопросы.
Хотел скачать архив , не смог, сообщите пожалуйста новый адрес.
Заранее признателен Nick



Вопрос отправлен: 03.02.2003, 12:18
Отправитель: Nick

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

Отвечает Maverick

Здравствуйте, Nick!
Ну субскрайбе есть архив, и погляди на сайте Bob Jonson'a


Ответ отправлен: 03.02.2003, 16:29
Отправитель: Maverick


Отвечает Joy

Добрый день, Nick!
Письмо напиши на joy@stsland.ru и напиши что тебе надо. Вышлю....


Ответ отправлен: 03.02.2003, 13:59
Отправитель: Joy


Отвечает Igoryk

Здравствуйте, Nick!
Полный новый адрес я не знаю, но у меня на сайте в разделе ДокументацияАссемблер есть файл, в который включены главы этой рассылки.

Ответ отправлен: 05.02.2003, 18:28
Отправитель: Igoryk


Отвечает Bob Johnson

Добрый день, Nick!
Через пару дней этот архив появится на моей странице: bobjohnson.nm.ru


Ответ отправлен: 04.02.2003, 00:02
Отправитель: Bob Johnson


 Вопрос № 2571

1. Меня всегда интересовало, как программы-взломщики ломают игры. Я провел маленький тест программой ArtMoney. Запускаю программу->выбираю процесс->захожу в TheSims->покупаю вещь, тем самым, изменяя кол-во денег->Alt-Tab->ищу в памяти игры нужную цифру->Все адрес найден, его можно изменять. А теперь вопрос, разве этот адрес, в котором храняться деньги выбирается случайно? (выхожу из симсов, при этом программа ArtMoney постоянно запущена с найденным адресом(в котором храняться деньги)->Снова захожу в симсов->Alt-Tab->изменяю адрес допустим на 99999)все! адрес не работает! значит адрес, где хранится число денег изменился???
так каким-же образом действуют программы-трейнеры. при запуске такой программы, в симах ставится максимальное кол-во денег. Откуда программа-трейнер узнает адрес где хранится число денег?
p.s. Почему написал в раздел Delphi? а потому-что больше писать было некуда... в железо или поиск информации что-ли?
____________________________________________________________



Вопрос отправлен: 03.02.2003, 13:06
Отправитель: pcgamer

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

Отвечает Maverick

Доброе время суток, pcgamer!
Вынужден вам сообщить, что это раздел по ассемблеру :)


Ответ отправлен: 03.02.2003, 14:27
Отправитель: Maverick


Отвечает Igoryk

Добрый день, pcgamer!
На мой взгляд нужно делать так:
1. Получаем указатель на процесс.
2. Высчитываем сегментный адрем и точку входа.
3. Рассматриваем всю программу (буферы например).
4. Если буфер или часть буфера сошлась, то меняем.
Мне кажется, что ArtMoney все равно что искать деньги, жизни или еще чего-нибудь. Она ищет числа.
>p.s. Почему написал в раздел Delphi? а потому-что больше писать было некуда... в железо или поиск информации что-ли?
А ты уверен, что в Delphi написал?

Ответ отправлен: 03.02.2003, 14:26
Отправитель: Igoryk


Отвечает Eugene

Добрый день, pcgamer!
Не знаю как насчёт ArtMoney, но я юзил похожую программку. Она просто сканировала всю используемую память исследуемой игрушки, находила все адреса. Потом надо было поменять количество денег например, программа просматривала какие адреса изменялись. Находилась куча адресов. Надо было ещё разок поменять количество денег. Программа ещё раз сканировала, адреса ещё больше отсеивались. В общем после какого-то раза она находила адрес, в котором число менялось все эти разы. Надеюсь я понятно объяснил.

Ответ отправлен: 03.02.2003, 13:25
Отправитель: Eugene


Отвечает Joy

Доброе время суток, pcgamer!
Ты сам задал вопрос и сам на него ответил. Ты же пишешь число, равное (например) количеству денег, выбираешь программу в которой надо искать это число. ArtMoney ищет это число в памяти. Как правило с первого раза не находит, и через два три раза выдает его адрес, который ты и меняешь.
PS. Очень не внимателен ты (или поговорить не скем?).


Ответ отправлен: 03.02.2003, 13:56
Отправитель: Joy


Отвечает Bob Johnson

Приветствую Вас, pcgamer!
Но это не раздел Delphi... Здесь живет асм.
Все зависит от того, как реализованы эти деньги в этих твоих simsax. Если они используют статическую ячейку памяти, то она обычно (почти всегда, если не изменяется imagebase) имеет один и тот же адрес. Даже можно сказать всегда.
Если же динамическую (т.е. выделенную уже в процессе работы программы) - то будет разный.
В таком случае необходимо уже ковырять программу, например найти статический адрес, который ссылается на эту динамическую ячейку.


Ответ отправлен: 04.02.2003, 00:03
Отправитель: Bob Johnson


 Вопрос № 2572

Доброе время суток, уважаемые эксперты.
У меня следующий вопрос:
если откомпилировать одни и теже исходники (с минимумом изменений) под unix и под dos, на сколько сильно будут отличаться бинарники (по-байтово), будут ли в их "похожие"
участки байтовых последовательностей? Мне нужно по двум бинарникам (dos - unix), не влезая в структуру программы, определить, использовался ли там один и тот же код или нет. Если можно, дайте ответ для случая использования языков С/С++, Pascal и ASM.
Заранее благодарен, carbonoid.
>C=C<



Вопрос отправлен: 03.02.2003, 15:12
Отправитель: carbonoid

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

Отвечает Igoryk

Доброе время суток, carbonoid!
Могу дать ответ для случая с ассемблером. Различия только в номерах прерываний и функций. А так везде используются команды процессора.

Ответ отправлен: 04.02.2003, 16:25
Отправитель: Igoryk


Отвечает masquer

Приветствую Вас, carbonoid!
Бинарный код для одного и того же типа процессоров будет, естественно одинаковым на уровне инструкций, все остальное зависит от операционной системы - работа стека, например, памяти, файловые операции. Короче - регистры будут одни и те же, а все остальное может отличаться. Похожие участки могут быть.

Ответ отправлен: 03.02.2003, 16:39
Отправитель: masquer


Отвечает Топор

Приветствую Вас, carbonoid!
Похожие участки будут, но только там, где прога выполняет работу СТРОГО самостоятельно, без вызова сервисов ОС типа прерываний (DOS) или функций из ядра или библиотек (все прочие). А поскольку вызовов таких тьма, то и совпадающего кода будет не шибко много.


Ответ отправлен: 04.02.2003, 11:43
Отправитель: Топор


 Вопрос № 2575

Ну я и идиот... :) Я как всегда все не так объяснил... Блин. Вот что значит, невнимательность. Прошу извинения у тех, кто слушал этот бред. Я неправильно поставил вопрос ... Вот мое прошлое письмо:
Меня всегда интересовало, как программы-взломщики ломают игры. Я провел маленький тест программой ArtMoney. Запускаю программу->выбираю процесс->захожу в TheSims->покупаю вещь, тем самым, изменяя кол-во денег->Alt-Tab->ищу в памяти игры нужную цифру->Все адрес найден, его можно изменять. А теперь вопрос, разве этот адрес, в котором храняться деньги выбирается случайно? (выхожу из симсов, при этом программа ArtMoney постоянно запущена с найденным адресом(в котором храняться деньги)->Снова захожу в симсов->Alt-Tab->изменяю адрес допустим на 99999)все! адрес не работает! значит адрес, где хранится число денег изменился???
так каким-же образом действуют программы-трейнеры. при запуске такой программы, в симах ставится максимальное кол-во денег. Откуда программа-трейнер узнает адрес где хранится число денег?
1. <сейчас читаю и краснею... :)> А вопрос был-"Почему игры хранят свои переменные не по фиксированным адресам в памяти а выделяют их динамически? Неужели они не могут хранить кол-во денег в одном адресе?
2. Если кто-нибудь читал геймерский журнал "ИГРОМАНИЯ", вы видели рубрику ШЕСТНАДЦАТЕРИЧНЫЕ КОДЫ. Чтобы было понятнее приведу пример из текста:
+++++++++++++++++++++++++++++++++++++++++++++++
GTA3
патроны к узи - 03A9854C
патроны к пистолету - еще какой-нибудь адресс
+++++++++++++++++++++++++++++++++++++++++++++++
Если адреса для хранения информации выбираются случайным образом, тогда зачем создана эта рубрика??? //все равно под адресом, где храняться патроны для узи в ГТА3(03A9854C)уже записана другая информация, следовательно код уже не работает??
Еще раз извините за мой старый вопрос. надеюсь не придется извеняться за новый...



Вопрос отправлен: 03.02.2003, 17:03
Отправитель: pcgamer

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

Отвечает Igoryk

Доброе время суток, pcgamer!
Я не знаю зачем создана эта рубрика, но мне кажется, что опубликована просто непроверенная информация. А случайное расположение буферов(патроны, жизни) - это наверное трюк против таких статей.

Ответ отправлен: 05.02.2003, 18:28
Отправитель: Igoryk


Отвечает masquer

Здравствуйте, pcgamer!
А они и хранятся в одном адресе, только адрес этот относитительный. Есть такое понятие как релокейшн, вот из-за этого адрес мог и измениться, или если, допустим, процесс выделяет себе память для работы, то нет никакой гарантии, что система выделит один и тот же адрес даже на одной и той же машине.
Ну а твои адреса судя по всему - смещения физического экзе, там они, естественно, будут постоянными.

Ответ отправлен: 03.02.2003, 17:22
Отправитель: masquer


Отвечает Bob Johnson

Добрый день, pcgamer!
Не все игры используют динамические переменные для этого. Это уже зависит от программистов, которые писали эту игру.
Динамическое выделение памяти удобно, если есть, например, несколько игроков - ведь тогда деньги должны быть у каждого свои. Т.е. или надо сразу выделять статическую память под макс. число игроков (глупо, т.к. объем личной информации каждого игрока м.б. достаточно большим - возьми, напр. стратегию), или выделять динамическую структуру, и выделять их по мере необходимости.


Ответ отправлен: 04.02.2003, 00:04
Отправитель: Bob Johnson


Отвечает Ayl

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

Ответ отправлен: 05.02.2003, 13:34
Отправитель: Ayl


 Вопрос № 2576

Здравствуйте, уважаемые эксперты!
Как можно удалить защищённый файл? Если файл является read only или system (Какой-нибудь загрузочный файл windows, например, в Windows 2000 prof pagefile.sys)
Заранее благодарен.


Приложение:


Вопрос отправлен: 03.02.2003, 18:22
Отправитель: Чёрный Ангел (raven@joker.botik.ru)

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

Отвечает Igoryk

Доброе время суток, Чёрный Ангел!
Если readonly или system, то нужно поменять аттрибут файла и выполнить удаление. Если же файл защищен (открыт для правки например), то в ряд ли удасться удалить его средствами DOS или Windows. Разве что отключить все процессы, обращающиеся к данному файлу. Ну а если написать драйвер, то все решится само собой.

Ответ отправлен: 05.02.2003, 18:28
Отправитель: Igoryk


Отвечает Eugene

Здравствуйте, Чёрный Ангел!
Такие файлы ты можешь удалить толко из доса. Иначе винда не даст (типа pagefile.sys).

Ответ отправлен: 03.02.2003, 19:00
Отправитель: Eugene


Отвечает Bob Johnson

Доброе время суток, Чёрный Ангел!
Если файл просто readonly или system - то меняешь его атрибуты на обычные и удаляешь. Но если ты на самом деле под виндами, то удалить открытый кем-то еще файл ты никак не сможешь.


Ответ отправлен: 04.02.2003, 02:30
Отправитель: Bob Johnson


Отвечает Maverick

Доброе время суток, Чёрный Ангел!
Чтобы удалить файл защищенный от записи, тебе просто нужно получить его аттрибуты и если они не позволяют удалить файл, то установить свои, а потом уж удалять.
Ф-ия 43h прерывания 21h.
Гляди в приложении.


Приложение:

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


 Вопрос № 2578

Тов. эксперты,пропихните эту ссылку в массы и они вас не забудут.
http://www.dore.ru/library/reveng/SIUG401.pdf
перевод документации к SoftIce описание комманд и еще кое что,причем свежак.прочитать не помешает...



Вопрос отправлен: 03.02.2003, 18:55
Отправитель: TheDeath

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

Отвечает Gibbel

Доброе время суток, TheDeath!
Пихаю...)))


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


Отвечает Igoryk

Здравствуйте, TheDeath!
Пихаем в массы!!!

Ответ отправлен: 05.02.2003, 18:28
Отправитель: Igoryk


Отвечает Sensey

Приветствую Вас, TheDeath!
Пропихиваю :)))


Ответ отправлен: 03.02.2003, 19:15
Отправитель: Sensey


Отвечает Bob Johnson

Добрый день, TheDeath!
Ok.


Ответ отправлен: 04.02.2003, 02:31
Отправитель: Bob Johnson


 Вопрос № 2579

Мир вам, эксперты.
Подскажите, какую-нибудь прогу assembler'а поновее (а то моя с глюком и работать иногда отказывается), а так же место, где сия прога лежит (в i-net'е).
Связь моя с миром по ццц пока самая скверная, так что прошу указать место верное.
Заранее благодарю вас, эксперты.



Вопрос отправлен: 03.02.2003, 21:37
Отправитель: Бултых

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

Отвечает Maverick

Приветствую Вас, Бултых!
Если для доса, то Tasm 5.0
www.filesearch.ru там в строке поиска введешь tasm и получишь кучу ftp ссылок, они почти все не битые.


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


Отвечает Joy

Добрый день, Бултых!
Что значит работать отказывается? А ты пробывал? Что она пишет, эта прога "Assembler"(TASM, MASM, WASM, NASM, A86, GNU)? Напиши по подробней что не работает?


Ответ отправлен: 04.02.2003, 07:58
Отправитель: Joy


Отвечает Eugene

Приветствую Вас, Бултых!
Рекомендую попробывать fasm
http://fasm.sourceforge.net/fasm144.zip

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


 Вопрос № 2580

Доброго времени суток всем!
Это не вопрос а просто ссылка как мне показалось
неплохая: http://datarecovery.ru/books/bsp/v18/
посмотрите там есть еще пара книг неплохих хотя и стареньких довольно!!!!



Вопрос отправлен: 03.02.2003, 22:05
Отправитель: Andrey

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

Отвечает Gibbel

Доброе время суток, Andrey!
Могу выслать почти все тома БСП, если кого-то это интересует.

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


Отвечает Igoryk

Приветствую Вас, Andrey!
Кидаем вторую ссылку в массы!!!

Ответ отправлен: 05.02.2003, 18:28
Отправитель: Igoryk


Отвечает Maverick

Добрый день, Andrey!


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



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (37)
C / C++ (28)
Perl (7)
Delphi (18)
Pascal (24)
Basic / VBA (12)
Java / JavaScript (12)
PHP (8)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (29)
"Железо" (31)
Поиск информации (18)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (13)
Юристу
Гражданское право (11)
Семейное право (7)
Трудовое право (6)
КоАП (5)

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




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

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


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

В избранное