Рейтинг темы:
  • 1 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Сломать О_о програмку
#91
qsh Написал:Почти через строку ибо из другой темы суда заплылSmile

По сути, нужно найти список вещей которые можно покупать, лучший вариант найди ID предмета которые можно покупать в датабазе(если есть)если нету Cheat Engine тебе в помощь по бакпаку по кидаешь вещи чанжет,анчанжет тебе помогутSmile дальше в кишках находим их ID а там разберёшься.

проще сказать чем сделать....
Просто интересно, каким образом определяется что можно продать/купить, а что нельзя и где эта проверка находится...
1
Ответ
#92
xolseg Написал:проще сказать чем сделать....
Просто интересно, каким образом определяется что можно продать/купить, а что нельзя и где эта проверка находится...
в C# Это должен быть html файл, не запаковывать же весь список предметов в ехе хотя есть и такие... если он грузит данные с сайта в момент обращения то можно забыть о этой идее.
Ответ
#93
qsh Написал:в C# Это должен быть html файл, не запаковывать же весь список предметов в ехе хотя есть и такие... если он грузит данные с сайта в момент обращения то можно забыть о этой идее.

И так, нашел файлы в которых содержаться все ID, название, группы и т.д., перевел значения в hex, поискал по этому значению в документе, ни чего толком не нашел,.. есть ещё идеи?
Сам фаил идет как csv, формат такой.
typeID,groupID,typeName,marketGroupID

И так:
typeID - Это понятно, ID предмета
groupId - это тоже понятно, ID группы предмета
TypeName - название предмета
MarketGroupID - ID группы в магазине

Все они разные, а точнее, существует 1 группа(как она позиционируется хз) Skill(по простому книги), в ней 16 подгрупп(groupid или marketgroupID), потом по иерархии идет typeID(идпредмета)... И что мне с этим делать?
Групп очень много.. Как их найти, даже не представляю.. найти минимальную и максимальную группу или же как то иначе?

Добавлено через 5 минут
А так же нашел непонятный фаил

Цитата:;EVE Trader v 1.6 by MacroLab
000: Goto()[010+]
001: StopClient(;true;false)[001]
002: CloseEveWindow()[001;001]
003: CloseEveWindow()[001;005]
005: CustomDelay(;;;;)[003;020;005]
010: CheckTraveling()[030+;040+]
020: CheckTraveling()[030+;050+]
030: StartEveAndLogin(false)[001;060;060;030]
040: StartEveAndLogin(false)[001;070;070;040]
050: StartEveAndLogin(false)[001;070;210;050]
060: StationSpaceCheck()[900+;900+;300+;100+;900+]
070: ReturnHome()[210+;220+]
100: WarpingToStation(true)[900+;300+;100;120+;003+]
120: DockingToStation(;;)[900+;100+;120;300+;300+]
200: TravelToNextSystem()[003+;200;200;060+;220]
210: SetNextSystem(+0)[220;200+]
220: SetNextSystem(0)[002+;200+]
230: SetNextSystem(+1)[220;200+]
240: CheckTraveling()[300;230]
300: AFKLogOffTimers()[900+;310+;030+;300;300]
310: CustomDelay(;;;;)[900+;400+;310]
400: CargoManager()[410;400;430;400;450]
410: HangarOps()[900+;420;120+]
420: LoadCargo()[900+;120+;500+;400]
430: UnloadCargo()[900+;120+;500+;400]
450: MarketAnalyzer()[900+;450;500+;002+]
500: Trader()[900+;540;540;540]
540: SellOrderInstaller()[900+;550;550]
550: BuyOrderInstaller()[900+;600;600]
600: PlanetManager()[900+;600;240]
900: ErrorHandler()[002+;003+;003+]
CL: Goto()[003+]
EC: Goto(30)[003+]
FM: Goto()[002+]
LO: Goto()[002+]
WO: Goto()[002+]
1
Ответ
#94
xolseg Написал:И так, нашел файлы в которых содержаться все ID, название, группы и т.д., перевел значения в hex, поискал по этому значению в документе, ни чего толком не нашел,.. есть ещё идеи?
Сам фаил идет как csv, формат такой.
typeID,groupID,typeName,marketGroupID

И так:
typeID - Это понятно, ID предмета
groupId - это тоже понятно, ID группы предмета
TypeName - название предмета
MarketGroupID - ID группы в магазине

Все они разные, а точнее, существует 1 группа(как она позиционируется хз) Skill(по простому книги), в ней 16 подгрупп(groupid или marketgroupID), потом по иерархии идет typeID(идпредмета)... И что мне с этим делать?
Групп очень много.. Как их найти, даже не представляю.. найти минимальную и максимальную группу или же как то иначе?

Добавлено через 5 минут
А так же нашел непонятный фаил


Ты же знаешь, что нужно сделатьBig Grin

Сам говоришь, что есть группа для триала ...

Решений много но самых рациональных будет два.

Есть вызов базы предметов для триала(так как ты говоришь что он некоторые предметы закупает на триале) тебе придётся найти вызов этой функции и заменить функцию на функцию оплаченной версии.

Либо найти такую же базу для триала и заменить на базу полноценной версии.
Ответ
#95
qsh Написал:Ты же знаешь, что нужно сделатьBig Grin

Сам говоришь, что есть группа для триала ...

Решений много но самых рациональных будет два.

Есть вызов базы предметов для триала(так как ты говоришь что он некоторые предметы закупает на триале) тебе придётся найти вызов этой функции и заменить функцию на функцию оплаченной версии.

Либо найти такую же базу для триала и заменить на базу полноценной версии.

Группа для триала - это образоное выражение, т.е. это теория и то правило, что на триале можно продавать эти книги.
База для триала и база для полной версии одни и теже, просто лицензия активируется файлом лицензии. В посте выше я описывал иерархию в игре и вид в боте.
[Изображение: 22:09:25_f32c0436.png]

Найти бы ещё этот вызов, я даже не представляю как он может выглядеть..

Добавлено через 30 минут
При изучение сайта msdn наткнулся на http://msdn.microsoft.com/ru-ru/library/...ntext.aspx
После решил посмотреть код, есть ли такое в коде, но до конца не понял, что тут делается. Возвращаются пустые значения.. А это нам не нужно, как узнать какое значение должно вернуться?

[src="C#"]public override bool Equals(object obj)
{
if (obj == null)
{
return false;
}
if (obj is int)
{
return ((((int) obj) >= 0x0) && (this == ((uint) obj)));
}
C9e.C7e ce = obj as C9e.C7e;
if (ce == null)
{
return false;
}
return (CIe.Je(this, ce) == ((CJe) 0x0));
}
[/src]

Добавлено через 59 минут
[src="C#"][CLe(Ge=true, Qe=true, Be=true)]
internal class Cle
{
private static CKe Be = new CKe();
internal static bool Ne = false;

public static void ge(string string_0)
{
lock (C9e.Qwe)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cpe), null, true, true, false, false, "", string_0, null, false, false, false);
}
}

public static CKe Ge()
{
if (!Ne)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cle), null, true, false, false, false, "", "", null, false, false, false);
}
return Be;
}

public static void Je(byte[] byte_0)
{
lock (C9e.Qwe)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cpe), null, true, true, false, false, "", "", byte_0, false, false, false);
}
}

public static void ke(byte[] byte_0)
{
try
{
LicenseContext currentContext = LicenseManager.CurrentContext;
if (currentContext != null)
{
currentContext.SetSavedLicenseKey(typeof(ILLicenseModule), Convert.ToBase64String(byte_0));
}
}
catch
{
}
string str = C9e.Qe("<RSAKeyValue><Modulus>qxjDeOh60EDrX85MZvD/h3Q0b0ukuqSDs118nZF1vJ+L5ulVuP61T/49t/Nbw5vhWl4cv7X5jxsLVzcvsn4vZWzrX2P26R0An7GCuIqOGcxXFJuhToU0Qf8WBrMpQaAisGh098FbgaWa930CksfJbIwb4R5CLxnAOX1p7AU7kK1DZJlY/JzJFd5KIPQ+kJ6UfD3zq/7ObjNNVJOkVjOpZ/oO4H1FvhsdY+Xgutek1RLKVnhysAdqgL7Dqsk08/kD30JMubsEys03n8/aUytkcuH3mmuCjyUN8YNQaw1b12UgYIDUBFS+Q7PMMCoSaugma8OVnPINVMmy4r4i2czwpQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");
try
{
C9e.smethod_2(C9e.smethod_0(str), byte_0);
}
catch (Exception)
{
try
{
C9e.smethod_2(C9e.ke(str), byte_0);
}
catch
{
}
}
}

public static byte[] Qe()
{
return C9e.QWe;
}

public static void smethod_0(CKe cke_0)
{
Be = cke_0;
}

public static void smethod_1(string string_0)
{
ke(C9e.fe(string_0));
}
}[/src]
Заинтересовал код выше, а именно отрезок
[src="C#"]
public static void ge(string string_0)
{
lock (C9e.Qwe)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cpe), null, true, true, false, false, "", string_0, null, false, false, false);
}
}

public static CKe Ge()
{
if (!Ne)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cle), null, true, false, false, false, "", "", null, false, false, false);
}
return Be;
}

public static void Je(byte[] byte_0)
{
lock (C9e.Qwe)
{
new C9e().Oe(LicenseManager.CurrentContext, typeof(Cpe), null, true, true, false, false, "", "", byte_0, false, false, false);
}
}
[/src]

Добавлено через 1 час 6 минут
И самое интересное такие проверки не только тут, ещё и в других местах.
1
Ответ
#96
Я бы сначала нашёл момент загрузки базы с ID вещей ... найти можно банально по имени.
В любом варианте вызываться он будет перед операциями купли/продажи от туда уже искать основную фю операций с магазом .
Ответ
#97
qsh Написал:Я бы сначала нашёл момент загрузки базы с ID вещей ... найти можно банально по имени.
В любом варианте вызываться он будет перед операциями купли/продажи от туда уже искать основную фю операций с магазом .

[src="C#"]private void U8e(object sender, EventArgs e)
{
string[] strArray = File.ReadAllLines(@"C:\Temp\invtypes.csv");
File.AppendAllText(@"C:\Temp\invtypesnew.csv", "itemID,itemNameNew" + Environment.NewLine);
File.AppendAllText(@"C:\Temp\invtypeschanged.csv", "itemID,itemNameNew,itemNameOld" + Environment.NewLine);
for (int i = 0x1; i < strArray.Length; i++)
{
string[] strArray2 = strArray[i].Split(new char[] { ',' }, StringSplitOptions.None);
if (strArray2.Length != 0x4)
{
throw new Exception();
}
int num2 = Convert.ToInt32(strArray2[0x0]);
string str = strArray2[0x2];
nIe.V5e ve = Class0.Re.Je(num2);
if (ve == null)
{
File.AppendAllText(@"C:\Temp\invtypesnew.csv", string.Concat(new object[] { num2, ",", str, Environment.NewLine }));
}
else if (ve.ee != str)
{
File.AppendAllText(@"C:\Temp\invtypeschanged.csv", string.Concat(new object[] { num2, ",", str, ",", ve.ee, Environment.NewLine }));
}
}
Console.WriteLine("Comparison finished");
}[/src]

Что то типа такого?
1
Ответ
#98
Почти, теперь в поиск забиваем U8e(new Objekt, EventArg)или просто U8e и смотрим где она вызывается Smile

И как показывает практика она упирается в licenseModule Smile дальше разбираться нужно долго и упорно там оооооооооччч много подфункций и одних пространст имен около сотни.. легче написать с 0 Big Grin.
Ответ
#99
qsh Написал:в C# Это должен быть html файл, не запаковывать же весь список предметов в ехе хотя есть и такие... если он грузит данные с сайта в момент обращения то можно забыть о этой идее.
enum, нет?

Добавлено через 3 минуты
В данном случае - обычное csv, мне кажется, что там должно быть поле вроде: триал тру/фалс. Вот изменение его и заставит игру нормально торговать.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
qsh Написал:Почти, теперь в поиск забиваем U8e(new Objekt, EventArg)или просто U8e и смотрим где она вызывается Smile

И как показывает практика она упирается в licenseModule Smile дальше разбираться нужно долго и упорно там оооооооооччч много подфункций и одних пространст имен около сотни.. легче написать с 0 Big Grin.

И отсюда встает вопрос, зачем мне нужно было это искать, если я и так знал что в лицензии всё идет? :Olen':

Что конкретно мне нужно искать в вызовах U8e?

Добавлено через 7 минут
Zubastic Написал:enum, нет?

Добавлено через 3 минуты
В данном случае - обычное csv, мне кажется, что там должно быть поле вроде: триал тру/фалс. Вот изменение его и заставит игру нормально торговать.

Нету таких полей в csv, возможно генерируется новый список в который добавляются эти самые тру/фалс,... но этого я не нашел.
1
Ответ


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

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


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