Форум программистов, компьютерный форум CyberForum.ru

Бесконечный цикл не вешающий программу - C++

Восстановить пароль Регистрация
 
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
27.09.2013, 17:48     Бесконечный цикл не вешающий программу #1
Добрый день. Столкнулся с тем, что мне необходимо мониторить директорию на наличие определенного файла. Суть в том, что цикл мониторинга вешает программу из-за своей бесконечности. Вопрос состоит в том, как написать программу так, чтобы функция проверки поиска файла в цикле работала не зависимо от остального кода и не мешала перемещаться по программе дальше?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 17:48     Бесконечный цикл не вешающий программу
Посмотрите здесь:

C++ Бесконечный цикл
Бесконечный цикл C++
C++ Бесконечный цикл
Бесконечный цикл C++
C++ Бесконечный цикл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
27.09.2013, 17:55     Бесконечный цикл не вешающий программу #2
Создавать его (мониторинг) в другом потоке? http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
http://ru.wikipedia.org/wiki/Поток_выполнения
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
27.09.2013, 19:50  [ТС]     Бесконечный цикл не вешающий программу #3
Можно поподробнее и желательно с примером? )
Убежденный
Системный программист
 Аватар для Убежденный
14194 / 6209 / 985
Регистрация: 02.05.2013
Сообщений: 10,346
Завершенные тесты: 1
27.09.2013, 20:02     Бесконечный цикл не вешающий программу #4
Не нужно циклов.
Используйте функцию FindFirstChangeNotification для получения
уведомлений об изменениях в папке.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
27.09.2013, 21:23  [ТС]     Бесконечный цикл не вешающий программу #5
Вопрос тут же задам. Есть библиотека lib.dll. Она может быть полезна, но если она модифицированна, то это может использоваться как читы. Вопрос состоит в том, как определить, если ли в либе читерские функции или нет?
Убежденный
Системный программист
 Аватар для Убежденный
14194 / 6209 / 985
Регистрация: 02.05.2013
Сообщений: 10,346
Завершенные тесты: 1
27.09.2013, 21:42     Бесконечный цикл не вешающий программу #6
А как определить, читерская функция или нет ?
По-моему, на этот вопрос нет или не может быть четкого ответа.
Та же OpenProcess, например, в одних руках может использоваться
для получения различных данных о процессе, а в других - для чтения
его памяти и "подглядывания" в различных нехороших целях...
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
27.09.2013, 22:03  [ТС]     Бесконечный цикл не вешающий программу #7
У меня есть исходники читерской либы. Единственная суть в том, что эта либа может быть модифицированна по-разному, ибо есть несколько разновидностей читов. Я предполагаю, что стоит найти какую-то конкретную функцию, которая есть во всех читерских либах и проверять наличие этой функции в либе. Вот лишь вопрос в том, как это проверить?
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
28.09.2013, 03:21     Бесконечный цикл не вешающий программу #8
Цитата Сообщение от florgas Посмотреть сообщение
У меня есть исходники читерской либы. Единственная суть в том, что эта либа может быть модифицированна по-разному, ибо есть несколько разновидностей читов. Я предполагаю, что стоит найти какую-то конкретную функцию, которая есть во всех читерских либах и проверять наличие этой функции в либе. Вот лишь вопрос в том, как это проверить?
Можно проще. Считаешь хэш оригинального файла и если он изменён - считаем что изменения могут быть и "читерскими".
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
28.09.2013, 20:41  [ТС]     Бесконечный цикл не вешающий программу #9
Все бы хорошо, но изменения файла могут быть и не читерскими. Эта же библиотека может использоваться для дополнительных полезных целей, а так же для читов. И все зависит только от ее начинки.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
28.09.2013, 23:39     Бесконечный цикл не вешающий программу #10
Цитата Сообщение от florgas Посмотреть сообщение
Все бы хорошо, но изменения файла могут быть и не читерскими. Эта же библиотека может использоваться для дополнительных полезных целей, а так же для читов. И все зависит только от ее начинки.
Тогда ничего не остаётся, как использовать какую-нибудь псевдоинтеллектуальную систему.
Конечно, можно тру-способом прочитать dll-ку, потом прочитать все функции, что там есть и по машинному коду (в общем случае - байт-коду) определить - читерская функция или нет. Можно тупо сверять со списком читерских методов. Можно определять изменяется какой-нибудь объект и если изменяется, то можно ли так менять. Но и в этом случае будут ошибки в обе стороны.
Можно сделать попроще. Либа как-то ведь используется в программе. Вот, после каждого использования можно чекать - как изменилось текущее состояние и если изменения слишком похожи на читерские - алертить (например, добавилось 100500 золота в одну секунду, хотя мы знаем, что золото добавляется по 1 с каким-нибудь минимальным интервалом).
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
29.09.2013, 11:53  [ТС]     Бесконечный цикл не вешающий программу #11
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Тогда ничего не остаётся, как использовать какую-нибудь псевдоинтеллектуальную систему.
Конечно, можно тру-способом прочитать dll-ку, потом прочитать все функции, что там есть и по машинному коду (в общем случае - байт-коду) определить - читерская функция или нет. Можно тупо сверять со списком читерских методов. Можно определять изменяется какой-нибудь объект и если изменяется, то можно ли так менять. Но и в этом случае будут ошибки в обе стороны.
Можно сделать попроще. Либа как-то ведь используется в программе. Вот, после каждого использования можно чекать - как изменилось текущее состояние и если изменения слишком похожи на читерские - алертить (например, добавилось 100500 золота в одну секунду, хотя мы знаем, что золото добавляется по 1 с каким-нибудь минимальным интервалом).
Я примерно так и хочу сделать. У меня есть функция, которая сто процентов присутствует в читерской модификации либы и которой не должно быть в простой модификации библиотеки. Вопрос в том и состоит, как проверить dll на наличие этой функции?
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
29.09.2013, 11:58     Бесконечный цикл не вешающий программу #12
Дык, эта..... LoadLibrary + GetProcAddress ?
(это если под Вин, под линем техника та же, функции немного отличаются)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 12:45     Бесконечный цикл не вешающий программу
Еще ссылки по теме:

Бесконечный цикл C++
C++ Бесконечный цикл
Бесконечный цикл C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
29.09.2013, 12:45     Бесконечный цикл не вешающий программу #13
Цитата Сообщение от florgas Посмотреть сообщение
Я примерно так и хочу сделать. У меня есть функция, которая сто процентов присутствует в читерской модификации либы и которой не должно быть в простой модификации библиотеки. Вопрос в том и состоит, как проверить dll на наличие этой функции?
Цитата Сообщение от CheshireCat Посмотреть сообщение
Дык, эта..... LoadLibrary + GetProcAddress ?
(это если под Вин, под линем техника та же, функции немного отличаются)
В принципе, так и надо делать. Берём книжку по ассемблеру и разбираемся с дизассемблером. Потом получаем адресс функции (процедуры) и парсим машинный код, попутно сверяя с оригиналом. Не знаю, есть ли по этому либы, но можно поискать какие-нибудь, которые будут сверять функции и давать вероятность, что это одна и таже, ибо разные компиляторы с разными оптимизациями под разные платформы дают разный машинный код.
Yandex
Объявления
29.09.2013, 12:45     Бесконечный цикл не вешающий программу
Ответ Создать тему
Опции темы

Текущее время: 01:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru