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

RusFAQ.ru: Программирование на Delphi


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


RusFAQ.ru: Программирование на Delphi

Выпуск № 133
от 04.02.2003, 09:30

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


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

Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.73
URL: Пристанище неодинокого программиста
[Подробней >>]
Jadd
Статус: Профессиональный
Общий рейтинг: 144
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 113.64
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
hackishD
Статус: Начальный
Общий рейтинг: 123.07
[Подробней >>]


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

Вопрос № 440. Приветствую вас, эксперты. Такое дело: хотел чтобы картинка при передвижении меньше мерцала и помест... (ответов: 1)
Вопрос № 441. Здравствуйте, товарищи эксперты! Есть некая БД, доступная только для чтения. С помощью SQLQuery я де... (ответов: 1)
Вопрос № 443. Здравствуйте ув. Эксперты!!! Злобная учительница заставила сделать программу, если не зделаю *******... (ответов: 2)
Вопрос № 445. 1. Меня всегда интересовало, как программы-взломщики ломают игры. Я провел маленький тест программой... (ответов: 3)

Вопросов: 4, ответов: 7


 Вопрос № 440

Приветствую вас, эксперты.
Такое дело: хотел чтобы картинка при передвижении меньше мерцала и поместил ее
в Clipboard, но результат не сильно отличается от того где картинка не подгружена,
так и должно быть, или я что-то не так сделал?
И еще вопрос: Можно ли как-нибудь повернуть картинку на X градусов?


Приложение:


Вопрос отправлен: 27.01.2003, 09:43
Отправитель: Iv

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

Отвечает Артём Шегеда

Доброе время суток, Iv!
В обработчике создания формы выполни такое присвоение:
DoubleBuffered := true;


Ответ отправлен: 27.01.2003, 10:36
Отправитель: Артём Шегеда


 Вопрос № 441

Здравствуйте, товарищи эксперты!
Есть некая БД, доступная только для чтения. С помощью SQLQuery я делаю выборку и мне нужно поменять значения одного поля. Например, вместо значения "AI010_Traspl" поствить "Температура расплава". Но так как в базу писать ничего нельзя Edit напрямую использовать нельзя. Теперь сам вопрос: как поменять значение поля, чтобы изменения не писались в БД, а приложение работало бы с измененным полем?



Вопрос отправлен: 28.01.2003, 12:07
Отправитель: sergei

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

Отвечает Jadd

Здравствуйте, sergei!
Можно создавать временные таблицы, которые хранили бы Ваши изменения. Иного выхода нет, т.к. напрямую через TQuery изменять ничего нельзя будет при таких начальных условиях.

Ответ отправлен: 28.01.2003, 23:40
Отправитель: Jadd


 Вопрос № 443

Здравствуйте ув. Эксперты!!!
Злобная учительница заставила сделать программу, если не зделаю *******,
очень надеюсь на вашу помошь!!!
Мне надо сделать программу в которой задаётся скорость движения для каждой из трёх черепах и при нажатии Button1 они должны двигаться, после жостижения конца формы должен выводится график зависимости скорости от времени, как сделать движение я знаю а вот насчет графика неимею нималейшего понятия. Где? и Как? Сделать этот график?!
Заранее огромное вам спасибо!
P.S. Если можно с примером.



Вопрос отправлен: 28.01.2003, 21:17
Отправитель: elvis

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

Отвечает baldr

Доброе время суток, elvis!
Ну, во-первых, скорость у тебя постоянная? Если да, то график - обычная прямая, которая от
времени совершенно не зависит и будет горизонтальной. А если не постоянная, то... :(
А как задается скорость?? Формулой? Тогда так... Циклом подставляешь значения времени в формулу,
а результатом будет именно скорость в данный момент времени. На экран выводит лучше так:
делаешь на форме (ты, ведь, в Delphi пишешь?) TImage нужных размеров, у него есть свойство Canvas,
на котором можно рисовать... Ну вот, так и рисуешь - ставишь одну точку, потом рассчитываешь
вторую, проводишь к ней линию (lineTo), рассчитываешь третью, к ней - lineTo и т.д. Масштаб
как выбирать, думаю, сообразишь...Если тебе не очень срочно и никак не получается, то напиши
мне на baldr(at)pisem.net после 30 числа - примерчик сделаю...


Ответ отправлен: 28.01.2003, 23:45
Отправитель: baldr


Отвечает Jadd

Приветствую Вас, elvis!
Дык есть компоненты типа Chart. С ними и колдуй.

Ответ отправлен: 28.01.2003, 23:14
Отправитель: Jadd


 Вопрос № 445

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



Вопрос отправлен: 01.02.2003, 09:28
Отправитель: pcgamer

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

Отвечает hackishD

Приветствую Вас, pcgamer!
Насколько я знаю алгоритм работы этих программ таков:
1. Следует ввести какое-нибудь значение, допустим число 100.
2. Выбрать процесс из текущих процессов.
3. Говоришь программе найти все все адреса числа 100 в памяти.
4. Программа сканирует всю память, занимаемую этим процессом.
5. Что-нибудь находит, допустим пять адресов.
6. Но адресов пять, поэтому нужно узнать, какой из них нужный.
7. Заходишь в свою игру и меняешь это самое значение 100, например на 85
8. Заходишь в программу ищешь 85, и т.д., пока не останется только один адрес.
9. Выбираешь его, говоришь программе заморозить его.
10. Программа следит за этим адресом в памяти и как только значение поэтому адресу изменилось программа восстанивливает значение которое ты указал.
11. Снова заходишь в игру и видишь, что, например, жизни у твоего героя не уменьшаются.
Конечно, наверное, у каждой из таких программ алгоритм разный. Надеюсь, что я не обманул тебя, поскольку сам не работал с такими программами.
Удачи

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


Отвечает Jadd

Приветствую Вас, pcgamer!
А все просто. Тут надо просто знать принципы адресации памяти в компьетере и винде в частности. Дело в том, что всякие там приблуды, типа колличества денег, хранятся в переменных процесса. Это значит, что хранятся они по некоторому смещению в памяти, выделенной процессц при его создании. Как ты понимаешь, винда не может предоставить именно требуемый диапазон адресов, а предоставляет те, которые свободны. Сало быть, надо опеределить начало параграфа, где размещается процесс, а затем по смещению относительно вершины параграфа искать область памяти, где лежит переменная. Видимо так. Я никогда не писал трейнеров, но логика программирования подсказывает мне такой путь решения задачи. Да и читал я где-то про именно такой способ.

Ответ отправлен: 01.02.2003, 20:18
Отправитель: Jadd


Отвечает Артём Шегеда

Доброе время суток, pcgamer!

Некоторые программы хранят свои переменные по фиксированным адресам в памяти, другие же - выделяют память под такие переменные динамически.
Для первого варианта подходит простейший алгоритм: зная адрес ячейки и размер данных (байт, слово, двойное слово, float, double, ...), можно контролировать значение и постоянно держмть его в заданных диапазонах.
Для второго варианта подойдёт другой алгоритм: если память распределяется динамически, то должен существовать указатель на эту область, где хранится значение, то есть зачатую достаточно найти необходимое значение, а затем, найти указатель на эту ячейку.
Трейнеры пишутся под конкретные программы, и как правило, после анализа их кода.
Если бы задал вопрос в рассылку по асму, то получил бы больше ответов.

Ответ отправлен: 03.02.2003, 12:14
Отправитель: Артём Шегеда



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

Внимание!
Форма может работать некорректно в почтовых программах "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)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (6)
КоАП (5)

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




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

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

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

В избранное