Welcome to Сообщество игровых серверов NETZONA.ORG

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. Зарегистрировавшись и войдя в систему, вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию другим участникам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?
  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

NxServ шифровка, аналитика и дешифровка

B_O_C_T_O_K

Пользователь
Регистрация
9 Окт 2021
Сообщения
41
Реакции
0
Баллы
8
Пол
Мужской
Семейное положение
Не выбрано
1644066150661.png

Сразу видим кучу непонятных файлов без названий, но названия можно дать самим благодаря просмотру самого кода.

Оригинал кода выглядит как-то так. Неразборчиво.
1644066236632.png

Но это можно легко обойти, берём любой линтер в руки и ставим всё на свои места.

1644066290793.png

Получился читаемый псевдо-код, теперь можно легко понять за что он отвечает.
Осталось только понять что это за DEI? Всё довольно просто, это шифрованные base64'ом названия функций.
1644066400258.png

Клиентские файлы сервера без обсфукации:
https://netzona.org/resources/nxserv-hook-16-10-2021-no-obsfucation.2653/

Lua:
_G["DEI"] = util.Base64Decode

Также хочу сделать отдельное замечание:
АА - массив со значениями и функциями, это может быть как GetNWBool, так и string который используется в функциях.

Тоесть AA[4] = 1644067366157.png

Сделать код полностью читаемым можно благодаря циклу и util.Base64Decode.
Раньше у ребят была шифровка получше, но сейчас ребята немножко обкакались.

E.g:

Lua:
local DEI = util.Base64Decode
for k, v in pairs(tbl) do
    print("[" .. k .. "]" .. " = " .. v .. ",")
end

Теперь можно задампить любую таблицу!
Пример:

Lua:
local BACA = {
    [1] = job,
    [2] = with_license,
    [3] = Hook,
    [4] = 2,
    [5] = SetAlphaMultiplier,
    [6] = Noiwex HUD,
    [7] = CreateMaterial,
    [8] = TaxiCar,
    [9] = GetClass,
    [10] = minimapready,
    [11] = nx_hud_icon_huge_shadow,
    [12] = TermEnds,
    [13] = nx_hud_icon_text_shadow,
    [14] = Add,
    [15] = weekday_1,
    [16] = GetNWBool,
    [17] = : ,
    [18] = GetFuel,
    [19] = q,
    [20] = $vertexcolor,
    [21] = DrawPie,
    [22] = HUDShouldDraw,
    [23] = SetDrawColor,
    [24] = ReadFloat,
    [25] = PoliceRes,
    [26] = IsValid,
    [27] = g,
    [28] = Rand,
    [29] = _shadow,
    [30] = life_nextRestock_t,
    [31] = $vertexalpha,
    [32] = nx_hud,
    [33] = J,
    [34] = hud,
    [35] = vgui/circle,
    [36] = Run,
    [37] = nx_hud_small,
    [38] = RenderAngles,
    [39] = GetNormalized,
    [40] = weekday_2,
    [41] = DarkRP_Mod_HUDPaint,
    [42] = $basetexture,
    [43] = Noiwex HUD Ammo,
    [44] = max,
    [45] = nxserv,
    [46] = DistToSqr,
    [47] = a,
    [48] = DrawRect,
    [49] = LocalPlayer,
    [50] = q ,
    [51] = min,
    [52] = CHudAmmo,
    [53] = nx_hud_small_shadow,
    [54] = GetTextSize,
    [55] = DarkRP_LockDown,
    [56] = GetTimeScale,
    [57] = RealFrameTime,
    [58] = TaxiPrice,
    [59] = nx_hud_icon_small,
    [60] = nx_hud_icon_huge,
    [61] = GetPrimaryAmmoType,
    [62] = %.2d:%.2d  %s, %d,
    [63] = weekday_4,
    [64] = Create,
    [65] = loading_net,
    [66] = ArrestReason,
    [67] = ceil,
    [68] = HSVToColor,
    [69] = wantedTime,
    [70] = nx_hud_icon_text,
    [71] = floor,
    [72] = CurTime,
    [73] = RealTime,
    [74] = resources,
    [75] = in_jail,
    [76] = life_stock,
    [77] = weekday_5,
    [78] = energy,
    [79] = Receive,
    [80] = sin,
    [81] = kmh,
    [82] = nx_hud_ammo_shadow,
    [83] = v,
    [84] = W,
    [85] = u,
    [86] = KeyDown,
    [87] = fun_money111,
    [88] = Clip1,
    [89] = IsCar,
    [90] = yscale,
    [91] = asfdasdfsdfasdfasdf,
    [92] = CreateFont,
    [93] = 3,
    [94] = abs,
    [95] = FormattedTime,
    [96] = km,
    [97] = mass,
    [98] = $ignorez,
    [99] = RunString,
    [100] = LerpAngle,
    [101] = GetNWInt,
    [102] = GetNWFloat,
    [103] = HideDefaultDarkRPHud,
    [104] = nx_hud_ammo,
    [105] = format,
    [106] = m,
    [107] = weekday_3,
    [108] = insert,
    [109] = , ,
    [110] = ,
    [111] = GetVelocity,
    [112] = ScrH,
    [113] = GetMaxClip1,
    [114] = DarkRP_Mod_HUDPaint_Ammo,
    [115] = nx_hud_icon_small_alt_shadow,
    [116] = nx_hud_icon_small_alt,
    [117] = cos,
    [118] = garrysmod/ui_click.wav,
    [119] = $translucent,
    [120] = while 1 do end,
    [121] = Color,
    [122] = Lerp,
    [123] = Vector,
    [124] = GetGlobalString,
    [125] = nx_hud_icon_small_shadow,
    [126] = ReadString,
    [127] = GetIntegrity,
    [128] = GetParent,
    [129] = district_,
    [130] = weekday_7,
    [131] = nx_hud_shadow,
    [132] = GetAngles,
    [133] = Think,
    [134] = DarkRP_Mod_HUDPaint_Speed,
    [135] = h,
    [136] =  /,
    [137] = Roboto,
    [138] = ScrW,
    [139] = district,
    [140] = nx_medcenter,
    [141] = %02d:%02d,
    [142] = wantedReason,
    [143] = Length,
    [144] = Set,
    [145] = Angle,
    [146] = path,
    [147] = nx_radio,
    [148] = %,
    [149] = NxCarsHud,
    [150] = E,
    [151] = curfew,
    [152] = %.1f L,
    [153] =  [%02i:%02i],
    [154] = GetColor,
    [155] = FrameTime,
    [156] = AteFoodIcon,
    [157] = ipairs,
    [158] = UnlitGeneric,
    [159] = GotArrested,
    [160] = GetRight,
    [161] = weekday_6,
    [162] = SetFont,
    [163] = wanted,
    [164] = money,
    [165] = SetMaterial,
    [166] = radio_disabled,
    [167] = Format,
    [168] = getTotalCancerPosition,
    [169] = HUDPaint
}


Смотрим lua/includes/init.lua
1644112770631.png
1644112816682.png

NxServ подгружают некоторые lua модули до и после запуска 'lua/autorun', поскольку DEI функция уже используется в 'lua/autorun/client', то её нужно добавлять до запуска 'lua/autorun'.

Для подобных процедур, NxServ, имеет специальную функцию 'rundir', она расположена в 'lua/includes/init.lua', от туда же и идёт запуск директорий (смотри скриншот), все запускаемые директории находятся в папке 'lua'.

DEI запускается из директории 'preinit', подобных директорий у них около 5, в каждой из которых отдельные модули.
 

IchSchlange

Пользователь
Регистрация
4 Фев 2022
Сообщения
3
Реакции
0
Баллы
3
Клан-тег
[ASG] Crime 2.0
Пол
Мужской
Семейное положение
Не выбрано
Род занятий
ds.asg-project.ru
Хороший разбор NxServ. Все понятно и ясно расписанно что это и с чем это едят.
Автору респект, старался над этим тредом.(y)(y)(y)
 
Назад
Сверху Снизу