Рейтинг темы:
  • 1 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Сломать О_о програмку
#31
Shayne Написал:Поставить в варианте darkevil'a значение 0 или -1 и она поидее не будет закрываться, не?

У меня например так и не получилось отредактировать бинарник HEX не осилил :-D
1
Ответ
#32
darkevil Написал:xolseg советую вооружиться все же инструментом вроде ida и почитать хотя бы http://habrahabr.ru/post/154419/

1010101010
Aka Stels
Ответ
#33
Shayne Написал:1010101010

Я читал, это мне не помогло))))
1
Ответ
#34
xolseg Написал:Я читал, это мне не помогло))))

Как успехи?
[Изображение: 61b684.png]
Ответ
#35
darkevil Написал:Как успехи?

Изменил то число на 0xFFFFFF...
Ищу как выключить эту проверку вообще. Пока что не очень получается.
Программа закрывается рандомно, поймать момент не могу.

Нашел ещё в гугле http://codepaste.ru/12743/ - это, думаю относится к боту, но мало чем поможет. :-)

Добавлено через 53 минуты
C8e.C9e+Cce..ctor()
Нашел все надписи которые показываются.
т.е. из этого составляется окно при запуске программы. А именнно
[Изображение: 07:31:52_be3ae864.png]
А вот как убрать её, для меня пока загадка. Скорее всего надо выключить вообще сообщения которые всплывают ShowMessage и т.п... попробую сам разобраться


Добавлено через 1 час 10 минут
А так же нашел
C8e.c9e
Как это выключить, пока что не придумал, но всё впереди.

Добавлено через 4 часа 15 минут
Вообщем, программа работает всё равно 2 часа. о_О при замере прошлом ошибся, скорее всего.
Для замера скорости использовал Sharpdevelop - возможно это микроскопом гвозди забивать, но не чего другого не придумал.
Как найти в этой программе, что заставляет её закрывать, понять не могу, но покопаю данные, мб что то интересное найду.

Добавлено через 5 часов 53 минуты
Нашел внутри библиотеку intellilock, скорее всего в ней "зашито" сколько должна работать программа и она же наверное закрывает её.

Добавлено через 6 часов 10 минут
Выдернул либу EVE.Resources.IntelliLock.Licensing.dll, запустил на таймер, посмотрим что произойдет через 2 часа.

Тема превращается в блог "сломай программу"...

2 часа прошло, опять выключилось.

Добавлено через 9 часов 24 минуты
[Изображение: 16:03:04_8e10060b.png]
Кто подскажет, что это захрень?
[src="c#"] Re("<script language='javascript'>alert( \"" + message + "\" );</script>");[/src]
Точнее я знаю, что это такое, но что оно может тут делать?

Добавлено через 9 часов 59 минут
http://rghost.ru/45873887

Убрал мессагу при включении проги.
Что делать с таймером так и не знаю. =(
1
Ответ
#36
Попробуй эту версию бинарника.
http://rghost.ru/45873966
В ней я проверку в том месте залочил, в теории триал должен быть теперь бесконечный. На практике хз не могу проверить =(
[Изображение: 61b684.png]
Ответ
#37
darkevil Написал:Попробуй эту версию бинарника.
http://rghost.ru/45873966
В ней я проверку в том месте залочил, в теории триал должен быть теперь бесконечный. На практике хз не могу проверить =(

Эм, а я в своей версии убрал всякую другую гадость сейчас и не вспомню что убирал)

На практике проверяется так, включается программа и ждать 2 часа. :-)

Добавлено через 33 минуты
Запустил 3 разных варианта, 1 твой и 2 своих. Посмотрим, какой из вариантов упадет через 2 часа. Пы.Сы. 17:18 Мск

Добавлено через 2 часа 35 минут
Все 3 выключились.

Добавлено через 2 часа 51 минуту
Покопался в логе нашел стек, потом полез в рефлектор и нашел такой код
[src="il"]internal void ke(object object_0)
{
try
{
this.ge.Dispose();
}
catch
{
}
try
{
Cle.Ge().ke((CGe) 0x3);
if (Cle.Ge().Ne() == ((CXe) 0x2))
{
Cle.Ge().xe(Cle.Ge().method_0());
}
if (Cle.Ge().Ne() == ((CXe) 0x1))
{
Cle.Ge().Je(Cle.Ge().method_0());
}
if (this.Je.je)
{
C9e.C3e.ke = new Timer(new TimerCallback(new C9e.C3e().method_0), null, 0x15f90, 0x7530);
if (this.Je.bool_3)
{
try
{
C9e.EnableWindow(Process.GetCurrentProcess().MainWindowHandle, false);
}
catch
{
}
}
[/src]
Мне кажется - это и есть ТО, что нужно убрать.
Т.е. мне кажется, что эти два значения складываются 0x15f90, 0x7530 и получается 120 минут :-)
Почему я так решил? В том же месте есть такая строка
[src="il"] L_0007: callvirt instance void [mscorlib]System.Threading.Timer:Big Grinispose()[/src]
По этому мне показалось, что моя догадка верна и нужно либо полностью убрать счетчик, т.е. вызов опкода или изменить значение. Сначала проверю со значением, потом уберу вызов и протестирую ещё раз.

Запустил на тест свою версию exe, без окна при старте и с измененными числами в этом коде. 19.39 Мск

Добавлено через 5 часов 52 минуты
Нужно, что то другое придумывать, мой вариант не проканал. :Olen':
1
Ответ
#38
Есть у кого нибудь какие идеи?

Мне бы идею, а там сам попробую разобраться, что и как. А то, что то голова не варит уже.
Вырезать полностью таймер, почему то не получается, в дальнейшем мб, что то и получится.

Добавлено через 7 часов 4 минуты
Возможно ли, что время до выхода берется из файла _trial.license?
1
Ответ
#39
Немного не так действуешь. Тебе нужно заставить программу думать, что она не триальная, а нормальная. Смотрим где грузится файл с лицензией и меняем флаг на противоположный. И никаких мучений с таймером.
http://www.insidepro.com/kk/140/140r.shtml вот как это тут сделано.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#40
Zubastic Написал:Немного не так действуешь. Тебе нужно заставить программу думать, что она не триальная, а нормальная. Смотрим где грузится файл с лицензией и меняем флаг на противоположный. И никаких мучений с таймером.
http://www.insidepro.com/kk/140/140r.shtml вот как это тут сделано.

Я этой логики не понимаю просто. Вот я убрал из кода все выключения программы, которые нашел.
Что то типа таких удалил:
[SRC="C#"] private class C3e
{
internal static Timer ke;

internal void method_0(object object_0)
{
ke.Dispose();
try
{
C9e.TerminateProcess(C9e.GetCurrentProcess(), 1);
}
catch
{
}
}
}[/SRC]
А толку нету, выходит все равно.
Можешь дать какой нибудь другой пример?

Добавлено через 1 час 52 минуты
А так же, подскажите, что значит это?
Код:
internal int method_0(int int_0)
        {
            if (int_0 < 0)
            {
                throw new Exception("upperBound=" + int_0.ToString() + "; upperBound must be >=0");
            }
            uint num = this.Qqe ^ (this.Qqe << 11);
            this.Qqe = this.Qje;
            this.Qje = this.Q1e;
            this.Q1e = this.QTe;
            return (int) ((4.6566128730773926E-10 * (0x7fffffff & (this.QTe = (this.QTe ^ (this.QTe >> 0x13)) ^ (num ^ (num >> 8))))) * int_0);
        }
А именно меня интересует вот это
Код:
return (int) ((4.6566128730773926E-10 * (0x7fffffff & (this.QTe = (this.QTe ^ (this.QTe >> 0x13)) ^ (num ^ (num >> 8))))) * int_0);
Я так понимаю это выражение математическое, каким образом оно считается? Почитал в msdn, но нечего не понял.
1
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ищу програмку SmileForMe 3 1,419 05-01-2015, 11:46 AM
Последний пост: nn03
  Сломать звук Madnezz 21 5,129 08-31-2012, 01:46 PM
Последний пост: Madnezz

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)