Для тех, кто хочет сделать мир лучше.
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#31
Сообщение
03.11.2008, 08:56
eldest писал(а):SteamWeakVerifyNewValveCDKey
Возвращяет int (enum ESteamError)
void*Src - const char *cszCDKey
TSteamError там не используется
всё остальное паходу инты или булены тк используются в основном в if(!arg) и т.д.
в добытых исходниках хл2 экспорты отсуцтвуют а должны быть))) но там старые и вот как выглядит кусочек
Код: Выделить всё
void CGameUI::ValidateCDKey(bool force, bool inConnect)
{
.................
else if (!force && vgui::system()->GetRegistryString("HKEY_CURRENT_USER\\Software\\Valve\\Half-Life\\Settings\\ValveKey", cdkey, sizeof(cdkey))
&& strlen(cdkey) > 0)
{
if ( SteamWeakVerifyNewValveCDKey(cdkey) == eSteamErrorNone )
.................
логично предположить что bool force, bool inConnect были добавлены в SteamWeakVerifyNewValveCDKey
и эт с какого времени работает проверка региона?
Я поюзал единицы =) облом похоже 36 возвращает всегда(ключ норм)
if (var1) значит что var1 равен чему угодно но не 0 и там другие также проверяются, тут надо узнать что реально передаёт мб какая-то комбинация
P.S Это всё-таки не спроста у меня декомпилер выдал следующий код
int v6
v6=fopen(a2,v7);

-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#32
Сообщение
03.11.2008, 10:18
fopen() :shock:
тада там какаято бинарная хрень т.к. ничего такого похожево на путь к фаилу или норм текста я не видел
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#33
Сообщение
03.11.2008, 10:27
eldest писал(а):fopen() :shock:
тада там какаято бинарная хрень т.к. ничего такого похожево на путь к фаилу или норм текста я не видел
Блин ты прав строки хранятся отдельно и надоо ещё строку запихнуть туда(strigs кстати команда берёт именно их)
SSZ0041573C_mylog_txt
Это ссылка на строку где хранится имя файла
-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#34
Сообщение
03.11.2008, 10:33
чё мы тут голову ломаем, я же выложил эмуль ша кароч пасматрю чё там
а на си есть чёнить типа type() чтоб получить тип переменной?
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#35
Сообщение
03.11.2008, 10:53
eldest писал(а):чё мы тут голову ломаем, я же выложил эмуль ша кароч пасматрю чё там
а на си есть чёнить типа type() чтоб получить тип переменной?
Не знаю если есть покажет int
-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#36
Сообщение
03.11.2008, 10:55
Код: Выделить всё
10:46:52:703 Hook: SteamWeakVerifyNewValveCDKey()
10:48:46:906 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:48:46:906 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:48:46:906 a2: LPCSTR:<@ѕH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:48:46:906 a3: LPCSTR:<@PНYAаDН > int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:48:46:906 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:48:46:906 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:48:46:906 a2: LPCSTR:<@ѕH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:48:46:906 a3: LPCSTR:<@PНYAаDН > int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:49:17:906 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:49:17:906 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:49:17:906 a2: LPCSTR:<@ѕH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:49:17:906 a3: LPCSTR:<> int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:49:17:906 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:49:17:906 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:49:17:906 a2: LPCSTR:<@ѕH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:49:17:906 a3: LPCSTR:<> int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:49:54:343 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:49:54:343 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:49:54:343 a2: LPCSTR:<`јH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:49:54:343 a3: LPCSTR:<> int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:49:54:343 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-AAAAA>
10:49:54:343 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:49:54:343 a2: LPCSTR:<`јH> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:49:54:343 a3: LPCSTR:<> int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:51:22:500 cszCDKey: <BBBBB-AAAAA-AAAAA-AAAAA-AAAAA>
10:51:22:500 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:51:22:500 a2: LPCSTR:< (G> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:51:22:500 a3: LPCSTR:<@ЧYAА=Ч > int:<1233856> unsigned int:<1233856> DWORD:<1233856>
10:51:22:500 cszCDKey: <AAAAA-AAAAA-AAAAA-AAAAA-BBBBB>
10:51:22:500 a1: LPCSTR:<> int:<1236132> unsigned int:<1236132> DWORD:<1236132>
10:51:22:500 a2: LPCSTR:< (G> int:<1236136> unsigned int:<1236136> DWORD:<1236136>
10:51:22:500 a3: LPCSTR:<@ЧYAА=Ч > int:<1233856> unsigned int:<1233856> DWORD:<1233856>
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#37
Сообщение
03.11.2008, 11:47
eldest писал(а):...
Вот что я нашёл:
Код: Выделить всё
*(_DWORD *)v26 = sub_3016E720(a3, 7u);
*(_DWORD *)v27 = sub_3016E720(a3, 8u);
*(_DWORD *)v28 = sub_3016E720(a3, 0x19u);
эти переменные идут с 1-й функции ещё:
Код: Выделить всё
int __cdecl SteamWeakVerifyNewValveCDKey(void *Src, int a2, int a3, int a4);
{
return sub_30148EA0(Src, a2, a4, a3, a4);
}
далее в sub_30148EA0:
Код: Выделить всё
...
v11=a3;
v6 = a2;
v5 = a4;
v17 = a5;
...
sub_30192510(v17, v6, (int)&v12, (int)&v20, v5) //Вызываем с некоторыми параметрами
далее в sub_30192510:
Код: Выделить всё
v5 = a1;
v6 = a2;
sub_30192780(v5, a5, (int)&v15, a3, a4, (int)&v14, v6);
а вот тут в функции sub_30192780:
Код: Выделить всё
v26 = a7;
v27 = a2;
v28 = a1;
...
*(_DWORD *)v26 = sub_3016E720(a3, 7u);
*(_DWORD *)v27 = sub_3016E720(a3, 8u);
*(_DWORD *)v28 = sub_3016E720(a3, 0x19u);
-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#38
Сообщение
03.11.2008, 12:06
da eto ya sam videl
cheto u menya s kompom..... yazik nepomenyat
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#39
Сообщение
03.11.2008, 12:06
eldest писал(а):da eto ya sam videl
cheto u menya s kompom..... yazik nepomenyat
Что есть *(_DWORD *)?
P.S Тема уже не про программу которая в начале а чёрти про что :)
-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#40
Сообщение
03.11.2008, 12:23
*(_DWORD *)?
я хз я си вообще хреново знаю
может для того чтоб получить переменную в том ввиде в катором она есть чтоб изменить значение, перед субами ничего же нету
у меня в студио 2003 с _DWORD компилить нехочет
перед тем как стим каллит на WeakVerify.... идёт калл на
SteamRefreshAccountInfo2(); // a1 - ?(null), a2 - int(1), + byref TSteamError?
a1 - может void* и бинарная хрень берётся оттуда?))))
кстате, а нах те эта фун-ия здалась? она нужна токо естли ты будеш брут писать
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#41
Сообщение
03.11.2008, 12:48
eldest писал(а):*(_DWORD *)?
я хз я си вообще хреново знаю
может для того чтоб получить переменную в том ввиде в катором она есть чтоб изменить значение, перед субами ничего же нету
у меня в студио 2003 с _DWORD компилить нехочет
перед тем как стим каллит на WeakVerify.... идёт калл на
SteamRefreshAccountInfo2(); // a1 - ?(null), a2 - int(1), + byref TSteamError?
a1 - может void* и бинарная хрень берётся оттуда?))))
кстате, а нах те эта фун-ия здалась? она нужна токо естли ты будеш брут писать
Забавно но из твоего же поста:
Код: Выделить всё
Steam_API.SteamWeakVerifyNewValveCDKey(sKey, ref pError);
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#43
Сообщение
03.11.2008, 13:20
А всё декомпилер накосячил - один struct заменился на то из чего он состоит(из асм же делается вот он и понял как есть)
P.S eSteamErrorRead возвращает оО не знаю что за хрень
P.P.S Щас SteamAccountPending пишет
Я пишу брут напрямую который будет проверять а не через /dev/ass
-
eldest
- Разработчик

- Сообщения: 302
- Зарегистрирован: 17.03.2008
- Откуда: такие как я?
- Поблагодарили: 2 раза
-
Контактная информация:
#44
Сообщение
04.11.2008, 01:17
ееееее
Diviton писал(а):Код: Выделить всё
STEAM_API int STEAM_CALL SteamWeakVerifyNewValveCDKey(const char* cszValveCDkey, int* piGameCode, unsigned int* puTerritoryCode, TSteamError* pError)
токо я чёто в ида не видел как очищается pError
и на кой в стиме зделано
Код: Выделить всё
return sub_xxxxxxxx(cszValveCDkey, piGameCode, pError, puTerritoryCode, pError);
}
-
Morfin
- Лейтенант

- Сообщения: 237
- Зарегистрирован: 19.10.2007
- Поблагодарили: 1 раз
#45
Сообщение
27.11.2008, 05:24
eldest писал(а):ееееее
Diviton писал(а):Код: Выделить всё
STEAM_API int STEAM_CALL SteamWeakVerifyNewValveCDKey(const char* cszValveCDkey, int* piGameCode, unsigned int* puTerritoryCode, TSteamError* pError)
токо я чёто в ида не видел как очищается pError
и на кой в стиме зделано
Код: Выделить всё
return sub_xxxxxxxx(cszValveCDkey, piGameCode, pError, puTerritoryCode, pError);
}
Это не существующая функция - sub_xxxxxxxx, реально всё что находится в ней - код SteamWeakVerifyNewValveCDKey, про pError тоже не видел а так ли это нужно
P.S Эта функция локально проверяет формат CD-KEY и получает код игры а также код территории, к которой он принадлежит(необходимо только запустить движок и сделать StartupSteam)