Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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 |
Отписаться
Убрать рекламу |
В избранное | ||