-
Автор темы
- #1
И снова приветствую вас, друзья! Представляю вашему вниманию новый skin changer - T1RANIUM, написанный на скриптовом языке - AutoHotkey v2.0.
Этот скрипт вобрал в себя логику прошлой версии, но потерпел небольшое переосмысление по нескольким направлениям. Этот скрипт - смесь нескольких моих гайдов на тематику AutoHotkey.
Особенности T1RANIUM по отношению к прошлой версии:
ВНИМАНИЕ!!!
Если вы хотите обезопасить свой аккаунт от VAC, рекомендую содержимое кода Fcode64.dll компилировать исключительно на своём ПК и некому не передавать этот файл. Это касается и скрипта. Запомните, Valve собирает информацию о метаданных любого файла на ПК человека. Передача даже самого безобидного скрипта может стоить вам блокировки вашего аккаунта и аккаунта друга. Если вы хотите поделиться с кем-то каким-либо скриптом, не поленитесь и передайте содержимое файла, а не сам файл.
Установка AutoHotkey v2.0:
Этот скрипт вобрал в себя логику прошлой версии, но потерпел небольшое переосмысление по нескольким направлениям. Этот скрипт - смесь нескольких моих гайдов на тематику AutoHotkey.
Особенности T1RANIUM по отношению к прошлой версии:
- Код скрипта написан на новой релизнутой версии AutoHotkey v2.0, которая в свою очередь стала более оптимизированной.
- Переосмыслена логика выражений, за счёт чего значительно уменьшено конечное количество строчек кода.
- Добавлен парсер для автоматического обновления ID скинов ко всем видам оружия.
- Приспособлен signature scanner из прошлого моего гайда (сигнатуры взяты из Пожалуйста, авторизуйтесь для просмотра ссылки.).
- Стабильность скрипта значительно увеличена, за счёт чего скины стали применятся в 99.5% случаях (зависит от обогревателя).
ВНИМАНИЕ!!!
Если вы хотите обезопасить свой аккаунт от VAC, рекомендую содержимое кода Fcode64.dll компилировать исключительно на своём ПК и некому не передавать этот файл. Это касается и скрипта. Запомните, Valve собирает информацию о метаданных любого файла на ПК человека. Передача даже самого безобидного скрипта может стоить вам блокировки вашего аккаунта и аккаунта друга. Если вы хотите поделиться с кем-то каким-либо скриптом, не поленитесь и передайте содержимое файла, а не сам файл.
Вот содержимое Fcode64.dll:
#include "pch.h"
#include <vector>
using namespace std;
extern "C" __declspec(dllexport) size_t module(HANDLE PROCESS_HANDLE, LPCVOID START_ADDRESS, uintptr_t END_ADDRESS, char* PATTERN, int PATTERN_LENGTH, int EXTRA)
{
MEMORY_BASIC_INFORMATION mbi;
mbi.RegionSize = 0x1000;
size_t start;
int i = 0;
int j = 0;
VirtualQueryEx(PROCESS_HANDLE, START_ADDRESS, &mbi, sizeof(mbi));
for (start = (size_t)START_ADDRESS; start < start + END_ADDRESS; start += mbi.RegionSize)
{
if (!VirtualQueryEx(PROCESS_HANDLE, (LPCVOID)start, &mbi, sizeof(mbi))) continue;
if (mbi.State != MEM_COMMIT || mbi.Protect & PAGE_NOACCESS) continue;
vector<char> buffer(mbi.RegionSize);
if (ReadProcessMemory(PROCESS_HANDLE, mbi.BaseAddress, buffer.data(), mbi.RegionSize, NULL))
{
for (i = 0; i < mbi.RegionSize; i++)
{
for (j = 0; j < PATTERN_LENGTH; j++)
{
if (buffer[i + j] != PATTERN[j] && PATTERN[j] != -1)
{
break;
}
}
if (j == PATTERN_LENGTH)
{
return start + i + EXTRA;
}
}
}
}
return -100;
}
extern "C" __declspec(dllexport) size_t process(HANDLE PROCESS_HANDLE, LPCVOID START_ADDRESS, char* PATTERN, int PATTERN_LENGTH, int EXTRA)
{
MEMORY_BASIC_INFORMATION mbi;
mbi.RegionSize = 0x1000;
size_t start;
int i = 0;
int j = 0;
VirtualQueryEx(PROCESS_HANDLE, START_ADDRESS, &mbi, sizeof(mbi));
for (start = (size_t)START_ADDRESS; VirtualQueryEx(PROCESS_HANDLE, (LPCVOID)start, &mbi, sizeof(mbi)); start += mbi.RegionSize)
{
if (!VirtualQueryEx(PROCESS_HANDLE, (LPCVOID)start, &mbi, sizeof(mbi))) continue;
if (mbi.State != MEM_COMMIT || mbi.Protect & PAGE_NOACCESS) continue;
vector<char> buffer(mbi.RegionSize);
if (ReadProcessMemory(PROCESS_HANDLE, mbi.BaseAddress, buffer.data(), mbi.RegionSize, NULL))
{
for (i = 0; i < mbi.RegionSize; i++)
{
for (j = 0; j < PATTERN_LENGTH; j++)
{
if (buffer[i + j] != PATTERN[j] && PATTERN[j] != -1)
{
break;
}
}
if (j == PATTERN_LENGTH)
{
return start + i + EXTRA;
}
}
}
}
return -100;
}
- Скачать установочный файл - Пожалуйста, авторизуйтесь для просмотра ссылки.
- Запустить установочный файл
- Клацаем на Install
- Появившееся окно - AutoHotkey Dash закрываем
- Готово!
- Заходим в свойства скрипта правой кнопкой мыши
- Изменить
- Выбираем в появившемся окне AutoHotkey 64-bit
- Закрываем свойства скрипта
- Запускаем скрипт и радуемся
- Файл - Fcode64.dll компилируем самостоятельно
- Не компилировать скрипт, запускать исключительно в формате .ahk
- Не распространять и не передавать знакомым готовый скрипт и Fcode64.dll
T1RANIUM:
#SingleInstance Force
CALL_WIN_HTTP_REQUEST()
; Что делать, если не работает скрипт:
; проверьте свой интернет
; проверьте паттерн в dwLocalPlayer и dwEntityList
; если скрипт выдаёт ошибку скорее всего это из-за: накрылся/изменилась структура сайта/не обновились данные - https://csgo.dumps.host или https://github.com/frk1/hazedumper/blob/master/csgo.toml
; в случае если накрылся парсер как в прошлый раз, прошу об этом написать, исправлю
name_weapon := ["ak47", "aug", "awp", "bizon", "cz75a", "deagle", "elite", "famas", "fiveseven", "g3sg1"
,"galilar", "glock", "hkp2000", "m249", "m4a1", "m4a1_silencer", "mac10", "mag7", "mp5sd"
,"mp7", "mp9", "negev", "nova", "p250", "p90", "revolver", "sawedoff", "scar20", "sg556"
,"ssg08", "tec9", "ump45", "usp_silencer", "xm1014"]
COMPONENT_CHECK()
GET_NETVAR()
INITIALIZING_ARRAY()
LOAD_FAST_CODE()
CONNECTING_TO_GAME("csgo.exe", "client.dll")
dwLocalPlayer := READ_MEMORY(FAST_SEARCH_SIGNATURE_IN_MODULE("8D 34 85 ?? ?? ?? ?? 89 15 ?? ?? ?? ?? 8B 41 08 8B 48 04 83 F9 FF") + 3) + 4 - Client
dwEntityList := READ_MEMORY(FAST_SEARCH_SIGNATURE_IN_MODULE("BB ?? ?? ?? ?? 83 FF 01 0F 8C ?? ?? ?? ?? 3B F8") + 1) + 0 - Client
paint_usp_state := IniRead("settings.ini", "weapon", "usp", 1)
paint_ak47_state := IniRead("settings.ini", "weapon", "ak47", 1)
paint_awp_state := IniRead("settings.ini", "weapon", "awp", 1)
paint_deagle_state := IniRead("settings.ini", "weapon", "deagle", 1)
paint_glock_state := IniRead("settings.ini", "weapon", "glock", 1)
paint_fiveseven_state := IniRead("settings.ini", "weapon", "fiveseven", 1)
paint_p250_state := IniRead("settings.ini", "weapon", "p250", 1)
paint_tec9_state := IniRead("settings.ini", "weapon", "tec9", 1)
paint_m4a4_state := IniRead("settings.ini", "weapon", "m4a4", 1)
paint_m4a1_state := IniRead("settings.ini", "weapon", "m4a1", 1)
paint_galil_state := IniRead("settings.ini", "weapon", "galil", 1)
paint_famas_state := IniRead("settings.ini", "weapon", "famas", 1)
paint_aug_state := IniRead("settings.ini", "weapon", "aug", 1)
paint_sg553_state := IniRead("settings.ini", "weapon", "sg553", 1)
paint_scout_state := IniRead("settings.ini", "weapon", "scout", 1)
paint_mac10_state := IniRead("settings.ini", "weapon", "mac10", 1)
paint_mp7_state := IniRead("settings.ini", "weapon", "mp7", 1)
paint_mp9_state := IniRead("settings.ini", "weapon", "mp9", 1)
paint_bizon_state := IniRead("settings.ini", "weapon", "bizon", 1)
paint_p90_state := IniRead("settings.ini", "weapon", "p90", 1)
paint_ump_state := IniRead("settings.ini", "weapon", "ump", 1)
paint_mag7_state := IniRead("settings.ini", "weapon", "mag7", 1)
paint_nova_state := IniRead("settings.ini", "weapon", "nova", 1)
paint_sawedoff_state := IniRead("settings.ini", "weapon", "sawedoff", 1)
paint_xm1014_state := IniRead("settings.ini", "weapon", "xm1014", 1)
paint_revolver_state := IniRead("settings.ini", "weapon", "revolver", 1)
paint_cz75auto_state := IniRead("settings.ini", "weapon", "cz75auto", 1)
paint_dualberettas_state := IniRead("settings.ini", "weapon", "dualberettas", 1)
paint_p2000_state := IniRead("settings.ini", "weapon", "p2000", 1)
paint_mp5sd_state := IniRead("settings.ini", "weapon", "mp5sd", 1)
paint_negev_state := IniRead("settings.ini", "weapon", "negev", 1)
paint_m249_state := IniRead("settings.ini", "weapon", "m249", 1)
paint_g3sg1_state := IniRead("settings.ini", "weapon", "g3sg1", 1)
paint_scar20_state := IniRead("settings.ini", "weapon", "scar20", 1)
loop
{
if (LocalPlayer := READ_MEMORY(Client + dwLocalPlayer))
{
if (!LifeState := READ_MEMORY(LocalPlayer + m_lifeState))
{
try
{
Gun := READ_MEMORY(LocalPlayer + m_hActiveWeapon) & 0xFFF
Gun_address := READ_MEMORY(Client + dwEntityList + (Gun - 1) * 0x10)
GunID := READ_MEMORY(Gun_address + m_iItemDefinitionIndex, "Short")
switch GunID
{
case 61:
fallbackpaint := USPSILENCER[paint_usp_state]
case 7:
fallbackpaint := AK47[paint_ak47_state]
case 9:
fallbackpaint := AWP[paint_awp_state]
case 1:
fallbackpaint := DEAGLE[paint_deagle_state]
case 4:
fallbackpaint := GLOCK[paint_glock_state]
case 3:
fallbackpaint := FIVESEVEN[paint_fiveseven_state]
case 36:
fallbackpaint := P250[paint_p250_state]
case 30:
fallbackpaint := TEC9[paint_tec9_state]
case 16:
fallbackpaint := M4A4[paint_m4a4_state]
case 60:
fallbackpaint := M4A1SILENCER[paint_m4a1_state]
case 13:
fallbackpaint := GALILAR[paint_galil_state]
case 10:
fallbackpaint := FAMAS[paint_famas_state]
case 8:
fallbackpaint := AUG[paint_aug_state]
case 39:
fallbackpaint := SG553[paint_sg553_state]
case 40:
fallbackpaint := SSG08[paint_scout_state]
case 17:
fallbackpaint := MAC10[paint_mac10_state]
case 33:
fallbackpaint := MP7[paint_mp7_state]
case 34:
fallbackpaint := MP9[paint_mp9_state]
case 26:
fallbackpaint := BIZON[paint_bizon_state]
case 19:
fallbackpaint := P90[paint_p90_state]
case 24:
fallbackpaint := UMP45[paint_ump_state]
case 27:
fallbackpaint := MAG7[paint_mag7_state]
case 35:
fallbackpaint := NOVA[paint_nova_state]
case 29:
fallbackpaint := SAWEDOFF[paint_sawedoff_state]
case 25:
fallbackpaint := XM1014[paint_xm1014_state]
case 64:
fallbackpaint := REVOLVER[paint_revolver_state]
case 63:
fallbackpaint := CZ75A[paint_cz75auto_state]
case 2:
fallbackpaint := ELITE[paint_dualberettas_state]
case 32:
fallbackpaint := HKP2000[paint_p2000_state]
case 23:
fallbackpaint := MP5SD[paint_mp5sd_state]
case 28:
fallbackpaint := НАГИЕВ[paint_negev_state]
case 14:
fallbackpaint := M249[paint_m249_state]
case 11:
fallbackpaint := G3SG1[paint_g3sg1_state]
case 38:
fallbackpaint := SCAR20[paint_scar20_state]
}
my_skins := READ_MEMORY(Gun_address + m_nFallbackPaintKit)
if (!my_skins)
{
WRITE_MEMORY(Gun_address + m_iItemIDHigh, -1)
WRITE_MEMORY(Gun_address + m_nFallbackPaintKit, fallbackpaint)
WRITE_MEMORY(Gun_address + m_iAccountID, 1)
}
}
}
}
}
UP::
{
global
ActiveWeapon := READ_MEMORY(LocalPlayer + m_hActiveWeapon) & 0xFFF
ActiveWeapon_address := READ_MEMORY(Client + dwEntityList + (ActiveWeapon - 1) * 0x10)
ActiveWeaponID := READ_MEMORY(ActiveWeapon_address + m_iItemDefinitionIndex, "Short")
switch ActiveWeaponID
{
case 61:
if (paint_usp_state != USPSILENCER.Length)
paint_usp_state++
case 7:
if (paint_ak47_state != AK47.Length)
paint_ak47_state++
case 9:
if (paint_awp_state != AWP.Length)
paint_awp_state++
case 1:
if (paint_deagle_state != DEAGLE.Length)
paint_deagle_state++
case 4:
if (paint_glock_state != GLOCK.Length)
paint_glock_state++
case 3:
if (paint_fiveseven_state != FIVESEVEN.Length)
paint_fiveseven_state++
case 36:
if (paint_p250_state != P250.Length)
paint_p250_state++
case 30:
if (paint_tec9_state != TEC9.Length)
paint_tec9_state++
case 16:
if (paint_m4a4_state != M4A4.Length)
paint_m4a4_state++
case 60:
if (paint_m4a1_state != M4A1SILENCER.Length)
paint_m4a1_state++
case 13:
if (paint_galil_state != GALILAR.Length)
paint_galil_state++
case 10:
if (paint_famas_state != FAMAS.Length)
paint_famas_state++
case 8:
if (paint_aug_state != AUG.Length)
paint_aug_state++
case 39:
if (paint_sg553_state != SG553.Length)
paint_sg553_state++
case 40:
if (paint_scout_state != SSG08.Length)
paint_scout_state++
case 17:
if (paint_mac10_state != MAC10.Length)
paint_mac10_state++
case 33:
if (paint_mp7_state != MP7.Length)
paint_mp7_state++
case 34:
if (paint_mp9_state != MP9.Length)
paint_mp9_state++
case 26:
if (paint_bizon_state != BIZON.Length)
paint_bizon_state++
case 19:
if (paint_p90_state != BIZON.Length)
paint_p90_state++
case 24:
if (paint_ump_state != UMP45.Length)
paint_ump_state++
case 27:
if (paint_mag7_state != MAG7.Length)
paint_mag7_state++
case 35:
if (paint_nova_state != NOVA.Length)
paint_nova_state++
case 29:
if (paint_sawedoff_state != SAWEDOFF.Length)
paint_sawedoff_state++
case 25:
if (paint_xm1014_state != XM1014.Length)
paint_xm1014_state++
case 64:
if (paint_revolver_state != REVOLVER.Length)
paint_revolver_state++
case 63:
if (paint_cz75auto_state != CZ75A.Length)
paint_cz75auto_state++
case 2:
if (paint_dualberettas_state != ELITE.Length)
paint_dualberettas_state++
case 32:
if (paint_p2000_state != HKP2000.Length)
paint_p2000_state++
case 23:
if (paint_mp5sd_state != MP5SD.Length)
paint_mp5sd_state++
case 28:
if (paint_negev_state != НАГИЕВ.Length)
paint_negev_state++
case 14:
if (paint_m249_state != M249.Length)
paint_m249_state++
case 11:
if (paint_g3sg1_state != G3SG1.Length)
paint_g3sg1_state++
case 38:
if (paint_scar20_state != SCAR20.Length)
paint_scar20_state++
}
IniWrite(paint_usp_state, "settings.ini", "weapon", "usp")
IniWrite(paint_ak47_state, "settings.ini", "weapon", "ak47")
IniWrite(paint_awp_state, "settings.ini", "weapon", "awp")
IniWrite(paint_deagle_state, "settings.ini", "weapon", "deagle")
IniWrite(paint_glock_state, "settings.ini", "weapon", "glock")
IniWrite(paint_fiveseven_state, "settings.ini", "weapon", "fiveseven")
IniWrite(paint_p250_state, "settings.ini", "weapon", "p250")
IniWrite(paint_tec9_state, "settings.ini", "weapon", "tec9")
IniWrite(paint_m4a4_state, "settings.ini", "weapon", "m4a4")
IniWrite(paint_m4a1_state, "settings.ini", "weapon", "m4a1")
IniWrite(paint_galil_state, "settings.ini", "weapon", "galil")
IniWrite(paint_famas_state, "settings.ini", "weapon", "famas")
IniWrite(paint_aug_state, "settings.ini", "weapon", "aug")
IniWrite(paint_sg553_state, "settings.ini", "weapon", "sg553")
IniWrite(paint_scout_state, "settings.ini", "weapon", "scout")
IniWrite(paint_mac10_state, "settings.ini", "weapon", "mac10")
IniWrite(paint_mp7_state, "settings.ini", "weapon", "mp7")
IniWrite(paint_mp9_state, "settings.ini", "weapon", "mp9")
IniWrite(paint_bizon_state, "settings.ini", "weapon", "bizon")
IniWrite(paint_p90_state, "settings.ini", "weapon", "p90")
IniWrite(paint_ump_state, "settings.ini", "weapon", "ump")
IniWrite(paint_mag7_state, "settings.ini", "weapon", "mag7")
IniWrite(paint_nova_state, "settings.ini", "weapon", "nova")
IniWrite(paint_sawedoff_state, "settings.ini", "weapon", "sawedoff")
IniWrite(paint_xm1014_state, "settings.ini", "weapon", "xm1014")
IniWrite(paint_revolver_state, "settings.ini", "weapon", "revolver")
IniWrite(paint_cz75auto_state, "settings.ini", "weapon", "cz75auto")
IniWrite(paint_dualberettas_state, "settings.ini", "weapon", "dualberettas")
IniWrite(paint_p2000_state, "settings.ini", "weapon", "p2000")
IniWrite(paint_mp5sd_state, "settings.ini", "weapon", "mp5sd")
IniWrite(paint_negev_state, "settings.ini", "weapon", "negev")
IniWrite(paint_m249_state, "settings.ini", "weapon", "m249")
IniWrite(paint_g3sg1_state, "settings.ini", "weapon", "g3sg1")
IniWrite(paint_scar20_state, "settings.ini", "weapon", "scar20")
}
DOWN::
{
global
ActiveWeapon := READ_MEMORY(LocalPlayer + m_hActiveWeapon) & 0xFFF
ActiveWeapon_address := READ_MEMORY(Client + dwEntityList + (ActiveWeapon - 1) * 0x10)
ActiveWeaponID := READ_MEMORY(ActiveWeapon_address + m_iItemDefinitionIndex, "Short")
switch ActiveWeaponID
{
case 61:
if (paint_usp_state != 1)
paint_usp_state--
case 7:
if (paint_ak47_state != 1)
paint_ak47_state--
case 9:
if (paint_awp_state != 1)
paint_awp_state--
case 1:
if (paint_deagle_state != 1)
paint_deagle_state--
case 4:
if (paint_glock_state != 1)
paint_glock_state--
case 3:
if (paint_fiveseven_state != 1)
paint_fiveseven_state--
case 36:
if (paint_p250_state != 1)
paint_p250_state--
case 30:
if (paint_tec9_state != 1)
paint_tec9_state--
case 16:
if (paint_m4a4_state != 1)
paint_m4a4_state--
case 60:
if (paint_m4a1_state != 1)
paint_m4a1_state--
case 13:
if (paint_galil_state != 1)
paint_galil_state--
case 10:
if (paint_famas_state != 1)
paint_famas_state--
case 8:
if (paint_aug_state != 1)
paint_aug_state--
case 39:
if (paint_sg553_state != 1)
paint_sg553_state--
case 40:
if (paint_scout_state != 1)
paint_scout_state--
case 17:
if (paint_mac10_state != 1)
paint_mac10_state--
case 33:
if (paint_mp7_state != 1)
paint_mp7_state--
case 34:
if (paint_mp9_state != 1)
paint_mp9_state--
case 26:
if (paint_bizon_state != 1)
paint_bizon_state--
case 19:
if (paint_p90_state != 1)
paint_p90_state--
case 24:
if (paint_ump_state != 1)
paint_ump_state--
case 27:
if (paint_mag7_state != 1)
paint_mag7_state--
case 35:
if (paint_nova_state != 1)
paint_nova_state--
case 29:
if (paint_sawedoff_state != 1)
paint_sawedoff_state--
case 25:
if (paint_xm1014_state != 1)
paint_xm1014_state--
case 64:
if (paint_revolver_state != 1)
paint_revolver_state--
case 63:
if (paint_cz75auto_state != 1)
paint_cz75auto_state--
case 2:
if (paint_dualberettas_state != 1)
paint_dualberettas_state--
case 32:
if (paint_p2000_state != 1)
paint_p2000_state--
case 23:
if (paint_mp5sd_state != 1)
paint_mp5sd_state--
case 28:
if (paint_negev_state != 1)
paint_negev_state--
case 14:
if (paint_m249_state != 1)
paint_m249_state--
case 11:
if (paint_g3sg1_state != 1)
paint_g3sg1_state--
case 38:
if (paint_scar20_state != 1)
paint_scar20_state--
}
IniWrite(paint_usp_state, "settings.ini", "weapon", "usp")
IniWrite(paint_ak47_state, "settings.ini", "weapon", "ak47")
IniWrite(paint_awp_state, "settings.ini", "weapon", "awp")
IniWrite(paint_deagle_state, "settings.ini", "weapon", "deagle")
IniWrite(paint_glock_state, "settings.ini", "weapon", "glock")
IniWrite(paint_fiveseven_state, "settings.ini", "weapon", "fiveseven")
IniWrite(paint_p250_state, "settings.ini", "weapon", "p250")
IniWrite(paint_tec9_state, "settings.ini", "weapon", "tec9")
IniWrite(paint_m4a4_state, "settings.ini", "weapon", "m4a4")
IniWrite(paint_m4a1_state, "settings.ini", "weapon", "m4a1")
IniWrite(paint_galil_state, "settings.ini", "weapon", "galil")
IniWrite(paint_famas_state, "settings.ini", "weapon", "famas")
IniWrite(paint_aug_state, "settings.ini", "weapon", "aug")
IniWrite(paint_sg553_state, "settings.ini", "weapon", "sg553")
IniWrite(paint_scout_state, "settings.ini", "weapon", "scout")
IniWrite(paint_mac10_state, "settings.ini", "weapon", "mac10")
IniWrite(paint_mp7_state, "settings.ini", "weapon", "mp7")
IniWrite(paint_mp9_state, "settings.ini", "weapon", "mp9")
IniWrite(paint_bizon_state, "settings.ini", "weapon", "bizon")
IniWrite(paint_p90_state, "settings.ini", "weapon", "p90")
IniWrite(paint_ump_state, "settings.ini", "weapon", "ump")
IniWrite(paint_mag7_state, "settings.ini", "weapon", "mag7")
IniWrite(paint_nova_state, "settings.ini", "weapon", "nova")
IniWrite(paint_sawedoff_state, "settings.ini", "weapon", "sawedoff")
IniWrite(paint_xm1014_state, "settings.ini", "weapon", "xm1014")
IniWrite(paint_revolver_state, "settings.ini", "weapon", "revolver")
IniWrite(paint_cz75auto_state, "settings.ini", "weapon", "cz75auto")
IniWrite(paint_dualberettas_state, "settings.ini", "weapon", "dualberettas")
IniWrite(paint_p2000_state, "settings.ini", "weapon", "p2000")
IniWrite(paint_mp5sd_state, "settings.ini", "weapon", "mp5sd")
IniWrite(paint_negev_state, "settings.ini", "weapon", "negev")
IniWrite(paint_m249_state, "settings.ini", "weapon", "m249")
IniWrite(paint_g3sg1_state, "settings.ini", "weapon", "g3sg1")
IniWrite(paint_scar20_state, "settings.ini", "weapon", "scar20")
}
COMPONENT_CHECK()
{
if (!FileExist("CFG.txt"))
GET_SKINS_ID()
else if (MsgBox("Обновить список скинов?",, "YesNo") = "Yes")
GET_SKINS_ID()
else
INITIALIZING_ARRAY()
}
INITIALIZING_ARRAY()
{
global
loop read "CFG.txt"
{
switch name_weapon[A_Index]
{
case "ak47":
AK47 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "aug":
AUG := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "awp":
AWP := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "bizon":
BIZON := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "cz75a":
CZ75A := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "deagle":
DEAGLE := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "elite":
ELITE := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "famas":
FAMAS := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "fiveseven":
FIVESEVEN := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "g3sg1":
G3SG1 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "galilar":
GALILAR := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "glock":
GLOCK := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "hkp2000":
HKP2000 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "m249":
M249 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "m4a1":
M4A4 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "m4a1_silencer":
M4A1SILENCER := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "mac10":
MAC10 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "mag7":
MAG7 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "mp5sd":
MP5SD := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "mp7":
MP7 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "mp9":
MP9 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "negev":
НАГИЕВ := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "nova":
NOVA := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "p250":
P250 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "p90":
P90 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "revolver":
REVOLVER := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "sawedoff":
SAWEDOFF := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "scar20":
SCAR20 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "sg556":
SG553 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "ssg08":
SSG08 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "tec9":
TEC9 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "ump45":
UMP45 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "usp_silencer":
USPSILENCER := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
case "xm1014":
XM1014 := StrSplit(StrReplace(A_LoopReadLine, name_weapon[A_Index] ": ", ""), A_Space)
}
}
}
GET_NETVAR()
{
global m_hActiveWeapon, m_iItemDefinitionIndex, m_nFallbackPaintKit, m_OriginalOwnerXuidHigh, m_iItemIDHigh, m_iAccountID, m_lifeState
OPEN_AND_PARSE("https://github.com/frk1/hazedumper/blob/master/csgo.toml")
page := Parse.ResponseText
netvar := ["m_hActiveWeapon", "m_iItemDefinitionIndex", "m_nFallbackPaintKit", "m_OriginalOwnerXuidHigh", "m_iItemIDHigh", "m_iAccountID", "m_lifeState"]
loop netvar.Length
{
RegExMatch(page, netvar[A_Index] " = (\d+)", &value)
switch netvar[A_Index]
{
case "m_hActiveWeapon":
m_hActiveWeapon := value[1]
case "m_iItemDefinitionIndex":
m_iItemDefinitionIndex := value[1]
case "m_nFallbackPaintKit":
m_nFallbackPaintKit := value[1]
case "m_OriginalOwnerXuidHigh":
m_OriginalOwnerXuidHigh := value[1]
case "m_iItemIDHigh":
m_iItemIDHigh := value[1]
case "m_iAccountID":
m_iAccountID := value[1]
case "m_lifeState":
m_lifeState := value[1]
}
}
}
GET_SKINS_ID()
{
if (FileExist("CFG.txt"))
FileDelete("CFG.txt")
MyGui := Gui(, "Обновление")
MyGui.Add("Text",, "Обновление списка:")
MyGui.Add("Progress", "w200 h20 c00ff37 vMyProgress", 0)
MyGui.OnEvent("Close", About_Close)
MyGui.Show("AutoSize")
About_Close(*)
{
MyGui.Destroy()
ExitApp()
}
loop name_weapon.Length
{
MyGui["MyProgress"].Value += 3
weapon := name_weapon[A_Index]
OPEN_AND_PARSE("https://csgo.dumps.host/items?item=weapon_" weapon)
;image := document.getElementsByTagName("img")[1].getAttribute("src")
length := document.getElementsByClassName("text-xs font-medium text-gray-100").length
loop length
{
Paintkit_id := StrReplace(document.getElementsByClassName("text-xs font-medium text-gray-100")[A_Index - 1].innerText, "Paintkit-id: ", "")
switch weapon
{
case "ak47":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "aug":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "awp":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "bizon":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "cz75a":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "deagle":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "elite":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "famas":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "fiveseven":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "g3sg1":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "galilar":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "glock":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "hkp2000":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "m249":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "m4a1":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "m4a1_silencer":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "mac10":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "mag7":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "mp5sd":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "mp7":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "mp9":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "negev":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "nova":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "p250":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "p90":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "revolver":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "sawedoff":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "scar20":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "sg556":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "ssg08":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "tec9":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "ump45":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "usp_silencer":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
case "xm1014":
CREATE_CFG(A_Index, length, weapon, Paintkit_id)
}
}
}
MyGui.Destroy()
}
CALL_WIN_HTTP_REQUEST()
{
global
Parse := ComObject("WinHttp.WinHttpRequest.5.1")
document := ComObject("HTMLfile")
document.write("<meta http-equiv=`"X-UA-Compatible`" content=`"IE=9`">")
}
OPEN_AND_PARSE(URL)
{
global
Parse.Open("GET", URL)
Parse.Send()
Parse.WaitForResponse()
document.write(Parse.ResponseText)
document.close()
}
CREATE_CFG(INDEX, LENGTH, WEAPON, PAINTKIT_ID)
{
if (INDEX == 1)
FileAppend(WEAPON ": " Paintkit_id " ", "CFG.txt")
else if (INDEX != length)
FileAppend(Paintkit_id " ", "CFG.txt")
else
FileAppend(Paintkit_id "`n", "CFG.txt")
}
CONNECTING_TO_GAME(NAME_GAME, DLL_GAME)
{
global PID, Client, ProcessHandle
if (!PID := ProcessWait(NAME_GAME, 60))
{
MsgBox("Игра не найдена!")
ExitApp()
}
Client := GET_DLL_BASE(DLL_GAME, PID)
ProcessHandle := DllCall("OpenProcess", "int", 2035711, "char", 0, "UInt", PID, "UInt")
}
GET_DLL_BASE(DLL_GAME, PID)
{
static TH32CS_SNAPMODULE := 0x00000008
static TH32CS_SNAPMODULE32 := 0x00000010
global modBaseSize, hModule
while hSnapshot := DllCall("CreateToolhelp32Snapshot", "UInt", (TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32), "UInt", PID, "Ptr")
{
MODULEENTRY32 := Buffer(A_PtrSize = 8 ? 568 : 548, 0)
NumPut("UInt", MODULEENTRY32.Size, MODULEENTRY32, 0)
if (DllCall("Module32First", "UInt", hSnapshot, "UInt", MODULEENTRY32.Ptr))
{
while DllCall("Module32Next", "UInt", hSnapshot, "UInt", MODULEENTRY32.Ptr)
{
if (DLL_GAME == StrGet(MODULEENTRY32.Ptr + (A_PtrSize = 8 ? 48 : 32), 256, "CP0"))
{
modBaseSize := NumGet(MODULEENTRY32, (A_PtrSize = 8 ? 32 : 24), "Ptr")
hModule := NumGet(MODULEENTRY32, (A_PtrSize = 8 ? 40 : 32), "Ptr")
DllCall("CloseHandle", "Ptr", hSnapshot)
return modBaseAddr := NumGet(MODULEENTRY32, (A_PtrSize = 8 ? 24 : 20), "Ptr")
}
}
}
DllCall("CloseHandle", "Ptr", hSnapshot)
}
}
FAST_SEARCH_SIGNATURE_IN_MODULE(PATTERN := "", EXTRA := 0, START_ADDRESS := Client, END_ADDRESS := modBaseSize)
{
PATTERN := StrSplit(StrReplace(RegExReplace(StrReplace(" " PATTERN, A_Space, " 0x"), A_Space, "", , 1, 1), "0x??", "-1"), A_Space)
create_array_cpp := Buffer(PATTERN.Length * 1)
loop PATTERN.Length
{
NumPut("Char", PATTERN[A_Index], create_array_cpp.Ptr, (A_Index - 1) * 1)
}
result := DllCall(A_PtrSize = 8 ? "Fcode64\module" : "Fcode32\module", "Ptr", ProcessHandle, "Ptr", START_ADDRESS, "Ptr", END_ADDRESS, "Ptr", create_array_cpp, "Ptr", PATTERN.Length, "Ptr", EXTRA, "CDecl Ptr")
return result != -100 ? Format("0x{:02X}", result) : result
}
FAST_SEARCH_SIGNATURE_IN_PROCESS(PATTERN := "", EXTRA := 0, START_ADDRESS := 0)
{
PATTERN := StrSplit(StrReplace(RegExReplace(StrReplace(" " PATTERN, A_Space, " 0x"), A_Space, "", , 1, 1), "0x??", "-1"), A_Space)
create_array_cpp := Buffer(PATTERN.Length * 1)
loop PATTERN.Length
{
NumPut("Char", PATTERN[A_Index], create_array_cpp.Ptr, (A_Index - 1) * 1)
}
result := DllCall(A_PtrSize = 8 ? "Fcode64\process" : "Fcode32\process", "Ptr", ProcessHandle, "Ptr", START_ADDRESS, "Ptr", create_array_cpp, "Ptr", PATTERN.Length, "Ptr", EXTRA, "CDecl Ptr")
return result != -100 ? Format("0x{:02X}", result) : result
}
LOAD_FAST_CODE()
{
#DllLoad "Kernel32.dll"
#DllLoad "*i Fcode64.dll"
#DllLoad "*i Fcode32.dll"
if (!DllCall("GetModuleHandle", "Str", (A_PtrSize = 8 ? "Fcode64.dll" : "Fcode32.dll")))
{
MsgBox("Dll: Fcode не обнаружен!")
ExitApp()
}
}
READ_MEMORY(ADDRESS, TYPE := "UInt")
{
if (DllCall("Kernel32\ReadProcessMemory", "UInt", ProcessHandle, "UInt", ADDRESS, TYPE "*", &uint32 := 0, "Ptr", 4, "UInt", 0))
return uint32
}
WRITE_MEMORY(ADDRESS, VALUE, TYPE := "UInt")
{
if (result := DllCall("Kernel32\WriteProcessMemory", "UInt", ProcessHandle, "UInt", ADDRESS, TYPE "*", VALUE, "UInt", 4, "UInt *", 0))
return result
}
INS:: Pause -1
END:: ExitApp
Последнее редактирование: