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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
#1

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

27.09.2013, 17:48. Просмотров 496. Ответов 12
Метки нет (Все метки)

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

Бесконечный цикл - C++
#include <iostream> using namespace std; int main() { int i=0; double ea; while(i!=-1) { ...

Бесконечный цикл - C++
void Number(int &K, int &L, int N) { if (K < 0 && K > L && L > N) { cout << "\nВведите границы для исключения элемeнтов из...

Бесконечный цикл - C++
Здравствуйте. Программа должна принимать некоторые значения, обрабатывать их и выдавать в виде статистики (нарисовать звездочками). ...

Бесконечный цикл - C++
#include <iostream> #include <climits> bool is_int(double); int main() { using namespace std; double num; cout << "Yo,...

Бесконечный цикл - C++
Доброго времени суток! Написал программу в среде Visual Studio 2010 Win32 project, но в ней есть кусок кода, когда происходит...

Бесконечный цикл - C++
Как ввести программу в бесконечный цикл на C++ ? Смотрел видео где делали бесконечный цикл (НО!) это было на Small Basic'е, а мне нужно...

Бесконечный цикл - C++
Почему компилятор выдает всякую ерунду при попытке воспроизвести этот код? Что его зацикливает? #include "stdafx.h" #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
27.09.2013, 19:50  [ТС]     Бесконечный цикл не вешающий программу #3
Можно поподробнее и желательно с примером? )
Убежденный
Системный программист
Эксперт С++
15246 / 6878 / 1092
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
27.09.2013, 20:02     Бесконечный цикл не вешающий программу #4
Не нужно циклов.
Используйте функцию FindFirstChangeNotification для получения
уведомлений об изменениях в папке.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
27.09.2013, 21:23  [ТС]     Бесконечный цикл не вешающий программу #5
Вопрос тут же задам. Есть библиотека lib.dll. Она может быть полезна, но если она модифицированна, то это может использоваться как читы. Вопрос состоит в том, как определить, если ли в либе читерские функции или нет?
Убежденный
Системный программист
Эксперт С++
15246 / 6878 / 1092
Регистрация: 02.05.2013
Сообщений: 11,254
Завершенные тесты: 1
27.09.2013, 21:42     Бесконечный цикл не вешающий программу #6
А как определить, читерская функция или нет ?
По-моему, на этот вопрос нет или не может быть четкого ответа.
Та же OpenProcess, например, в одних руках может использоваться
для получения различных данных о процессе, а в других - для чтения
его памяти и "подглядывания" в различных нехороших целях...
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
27.09.2013, 22:03  [ТС]     Бесконечный цикл не вешающий программу #7
У меня есть исходники читерской либы. Единственная суть в том, что эта либа может быть модифицированна по-разному, ибо есть несколько разновидностей читов. Я предполагаю, что стоит найти какую-то конкретную функцию, которая есть во всех читерских либах и проверять наличие этой функции в либе. Вот лишь вопрос в том, как это проверить?
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
28.09.2013, 03:21     Бесконечный цикл не вешающий программу #8
Цитата Сообщение от florgas Посмотреть сообщение
У меня есть исходники читерской либы. Единственная суть в том, что эта либа может быть модифицированна по-разному, ибо есть несколько разновидностей читов. Я предполагаю, что стоит найти какую-то конкретную функцию, которая есть во всех читерских либах и проверять наличие этой функции в либе. Вот лишь вопрос в том, как это проверить?
Можно проще. Считаешь хэш оригинального файла и если он изменён - считаем что изменения могут быть и "читерскими".
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
28.09.2013, 20:41  [ТС]     Бесконечный цикл не вешающий программу #9
Все бы хорошо, но изменения файла могут быть и не читерскими. Эта же библиотека может использоваться для дополнительных полезных целей, а так же для читов. И все зависит только от ее начинки.
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
28.09.2013, 23:39     Бесконечный цикл не вешающий программу #10
Цитата Сообщение от florgas Посмотреть сообщение
Все бы хорошо, но изменения файла могут быть и не читерскими. Эта же библиотека может использоваться для дополнительных полезных целей, а так же для читов. И все зависит только от ее начинки.
Тогда ничего не остаётся, как использовать какую-нибудь псевдоинтеллектуальную систему.
Конечно, можно тру-способом прочитать dll-ку, потом прочитать все функции, что там есть и по машинному коду (в общем случае - байт-коду) определить - читерская функция или нет. Можно тупо сверять со списком читерских методов. Можно определять изменяется какой-нибудь объект и если изменяется, то можно ли так менять. Но и в этом случае будут ошибки в обе стороны.
Можно сделать попроще. Либа как-то ведь используется в программе. Вот, после каждого использования можно чекать - как изменилось текущее состояние и если изменения слишком похожи на читерские - алертить (например, добавилось 100500 золота в одну секунду, хотя мы знаем, что золото добавляется по 1 с каким-нибудь минимальным интервалом).
florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 345
29.09.2013, 11:53  [ТС]     Бесконечный цикл не вешающий программу #11
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Тогда ничего не остаётся, как использовать какую-нибудь псевдоинтеллектуальную систему.
Конечно, можно тру-способом прочитать dll-ку, потом прочитать все функции, что там есть и по машинному коду (в общем случае - байт-коду) определить - читерская функция или нет. Можно тупо сверять со списком читерских методов. Можно определять изменяется какой-нибудь объект и если изменяется, то можно ли так менять. Но и в этом случае будут ошибки в обе стороны.
Можно сделать попроще. Либа как-то ведь используется в программе. Вот, после каждого использования можно чекать - как изменилось текущее состояние и если изменения слишком похожи на читерские - алертить (например, добавилось 100500 золота в одну секунду, хотя мы знаем, что золото добавляется по 1 с каким-нибудь минимальным интервалом).
Я примерно так и хочу сделать. У меня есть функция, которая сто процентов присутствует в читерской модификации либы и которой не должно быть в простой модификации библиотеки. Вопрос в том и состоит, как проверить dll на наличие этой функции?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
29.09.2013, 11:58     Бесконечный цикл не вешающий программу #12
Дык, эта..... LoadLibrary + GetProcAddress ?
(это если под Вин, под линем техника та же, функции немного отличаются)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 12:45     Бесконечный цикл не вешающий программу
Еще ссылки по теме:

Бесконечный цикл - C++
if (!(cin >> Mas >> Rost)) { cout << "Ошибка\n"; continue; } В общем при вводе букв начинается бесконечный цикл, а надо...

Бесконечный цикл while - C++
Здравствуйте необходимо написать бесконечный цикл while , который при запуске программы постоянно выводил на экран char переменную "y" и...

Бесконечный цикл - C++
Народ помогите у меня зациклился цикл. Что я сделал не так вроде условие выхода есть или может другой цикл использовать? Использовал do -...

Бесконечный цикл - C++
Ребят, что-то цикл выполняется постоянно. Покажите ошибку мне/ #include <iostream> using namespace std; int main() { ...

Бесконечный цикл - C++
Простите что с таким лёгким вопросом, но мистика окутывает мою учёбу всё больше и больше ^^ Тут програмка которая считает сумму каждого...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru