Рейтинг темы:
  • 1 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Сломать О_о програмку
Zubastic Написал:Что происходит? Программа крашится?

Выдается сообщение, что типа лицензия не рабочая или как то так.
Попозже скриншот сделаю.. если получится.
1
Ответ
Ладно позже поковыряю еще, видимо проверка еще раньше.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
Zubastic Написал:Ладно позже поковыряю еще, видимо проверка еще раньше.

Я вот думаю, может купить 1 лицензию и попробовать закрыть запрос к серверу, что бы возвращалось положительное значение запроса? Или как то так?
1
Ответ
Пост запрос сам перехватишь? Wink это уже к эмулятору ближе и на тяп,ляп его не сделать.
Ответ
И так, забрасывал программку что бы отдохнуть. Сегодня взялся и задумался, а что если найти при каких условиях выскакивает окно об ошибке, может там и есть эта зловредная проверка.
[Изображение: 14:17:02_a148deff.png]

Что я нашел?
[src="C++"] Label_1CD3:
if (ffe_0.General_WriteDebugLog && ffe_0.General_DetailedDebugLog)
{
UHe.ee("Trader", "Trading of " + current.string_0 + " disabled in trial mode. Code 3");
}
Class3.he(0x10, "Trader Trial Limitation", "Trial verion of a trader may be used to trade skillbooks only. Purchase full version license to trade: {0}", 0x1e, new object[] { current.string_0 });
return 0x3;
[/src]
Это пример того когда выскакивает ошибка, поднялся на уровни выше, где идет вызов Label_1CD3 и нашел следующие
[src="C++"]Label_1C4C:
if (ge != 0x96)
{
goto Label_1CD3;
}
}
[/src]
Попробую убрать эти проверки, но(!), таких файлов 3.
Pe.fje(f5e) : Int32
Pe.fPe(f5e) : Int32
Pe.N3e(ffe) : Int32
эти название в нетрефлекторе. Я бы мог добавить сюда все коды, что в этих файлах, но все кто хотел помочь уже сами давно скачали и извращаются или извращались по своему.
В случае успеха выложу готовый exe либо напишу о провале.

Добавлено через 1 час 58 минут
Вообщем сделал вывод, что разобраться сложно, пошел от обратного.
И так, переписываю пост. Иду от обратных значений вызовов.

[SRC="csharp"]Label_1CD3:
if (ffe_0.General_WriteDebugLog && ffe_0.General_DetailedDebugLog)
{
UHe.ee("Trader", "Trading of " + current.string_0 + " disabled in trial mode. Code 3");
}
Class3.he(0x10, "Trader Trial Limitation", "Trial verion of a trader may be used to trade skillbooks only. Purchase full version license to trade: {0}", 0x1e, new object[] { current.string_0 });
return 0x3;[/SRC]
Label_1CD3: вызывается в Label_1C4C
[SRC="csharp"]Label_1C4C:
if (ge != 0x96)
{
goto Label_1CD3;
}[/SRC]
Идём выше по цепочке:
[SRC="csharp"]
Label_1C1C:
if (pe.ge == 0x0)
{
goto Label_1C4C;
}
ge = pe.ge;[/SRC]
[SRC="csharp"]Label_1C34:
pe = Class0.Oe.Je(ge);
if (pe != null)
{
goto Label_1C1C;
}[/SRC]

И вот тут начинаются выкрутасы:
[SRC="csharp"]if (flag)
{
using (List<Nne>.Enumerator enumerator = ffe_0.Trader_CurrentOrders.GetEnumerator())
{
Nne current;
while (enumerator.MoveNext()) // - функция до выхода значения false (т.е. получается если bool flag = false оно должно ниже стать таковым, но ни как не true)
{
nIe.VPe pe; // - это для чего тут?
current = enumerator.Current; // - это более менее понятно
nIe.V5e ve = Class0.Re.Je((int) current.se); // - это не понятно (nIe.V5e ve это равно Class0.Re.Je((int) current.se) этому?
if (ve == null) // - если ve = null, то идет вызов 1C65
{
goto Label_1C65; // - вызов проверки на валидность итема
}
int ge = ve.Int32_1; // - а тут что? int ge равен ve.Int32_1 - этому числу? вынесу в примечание.
goto Label_1C34; // - вызов проверок для вывода окна с ошибкой.
[/SRC]
И так, вот тут я не понимаю не черта.
Что это делает и чем занимается? Я понимаю что условия если, что то, то то-то.
Что за значение, откуда берутся и почему сравниваются.
Т.е. мне нужно, как то вернуть значение false. Что бы окно не показывалось с ошибкой, каким образом мне это сделать?
Выставить nIe.V5e ve = false или Class0.Re.Je((int) current.se) = false? Если да, то выглядит это проще чем кажется. А если нет, то придется подумать, но что то с логикой у меня плоховато.


Примечание, goto Label_1C65 это:
[SRC="csharp"] Label_1C65:
if (ffe_0.General_WriteDebugLog && ffe_0.General_DetailedDebugLog)
{
UHe.ee("Trader", string.Concat(new object[] { "Item with ID ", (int) current.se, ", Name ", current.string_0, " not found in the database. Code 0" }));
}
return 0x0;
[/SRC]
Примечание, public int Int32_1 это:
[SRC="csharp"]public int Int32_1
{
get
{
int num;
try
{
num = (int) base[this.ie.de];
}
catch (InvalidCastException exception)
{
throw new StrongTypingException("The value for column 'marketGroupID' in table 'invtypes' is DBNull.", exception);
}
return num;
}
set
{
base[this.ie.de] = value;
}
}[/SRC]
1
Ответ
Вообщем ничего нового у меня не получилось. Пришлось купить лицензию, фаил лицензий представляет из себя белеберду, подумываю как бы его открыть...
1
Ответ
Какие данные предоставлялись для разработчика?
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
Zubastic Написал:Какие данные предоставлялись для разработчика?

Не очень понял вопроса....
1
Ответ
xolseg Написал:Не очень понял вопроса....

Опиши процесс покупки лицензии. Просили банально e-mail/pass или что-нибудь ещё специфическое, вроде MAC адреса сетевой карты?
Ответ
На основании данных можно попытаться понять из чего сварили эту кашу.
А так все-таки мне кажется нужно ковырять непосредственно в корне эту хрень.

Добавлено через 3 минуты
Вообщем зайди в аську, у меня сейчас настроение что-то поломать. Smile
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ


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

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


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