• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
partoftheworlD

Смена режима инжекта анти-чита

4 сообщения в этой теме

Есть проверка которая проверяет как инжектить анти-чит  через LoadLibrary, либо Manual Map. Нашел проверку, нашел функцию, разобрал. Пропатчил проверку и теперь анти-чит должен инжектиться, через LoadLibrary, но я не могу получить в API Monitor,ProcMon LoadLibrary, Просто при использовании LoadLibrary, файл будет попадать в папку Temp и его можно будет забрать для анализа, попробовать сделать какой-нибудь обход. Отладка не вариант, эта функция отрабатывает 1 раз при запуске Steam.

 

Сама проверка в ней ничего необычного: Занопил прыжок и все, должно работать.

 if ( a2 & 2 ) 
      sub_100225F0(a1); //LoadLibrary 
    else
      sub_10022650(a1); //Manual Map

 

 

Полный код:

asm

Скрытый текст

.text:100223A0 sub_100223A0    proc near               ; CODE XREF: sub_10021CC0+8Ap
.text:100223A0                                         ; sub_10021E90+61p
.text:100223A0
.text:100223A0 arg_0           = dword ptr  8
.text:100223A0 arg_4           = byte ptr  0Ch
.text:100223A0
.text:100223A0                 push    ebp
.text:100223A1                 mov     ebp, esp
.text:100223A3                 push    esi
.text:100223A4                 mov     esi, [ebp+arg_0]
.text:100223A7                 push    edi
.text:100223A8                 mov     edi, ecx
.text:100223AA                 cmp     dword ptr [esi+0Ch], 0
.text:100223AE                 jnz     loc_10022481
.text:100223B4                 cmp     dword ptr [esi+18h], 0
.text:100223B8                 jz      loc_10022489
.text:100223BE                 cmp     dword ptr [esi+14h], 0
.text:100223C2                 jz      loc_10022489
.text:100223C8                 cmp     dword ptr [esi+8], 0
.text:100223CC                 jz      short loc_100223E9
.text:100223CE                 push    0
.text:100223D0                 push    153h
.text:100223D5                 push    offset aServicemodul_0 ; "servicemodulemanagerbase.cpp"
.text:100223DA                 push    0
.text:100223DC                 push    offset aAssertionFa_36 ; "Assertion Failed: pModule->m_pModule =="...
.text:100223E1                 call    sub_10047CE0
.text:100223E6                 add     esp, 14h
.text:100223E9
.text:100223E9 loc_100223E9:                           ; CODE XREF: sub_100223A0+2Cj
.text:100223E9                 cmp     dword ptr [esi+4], 0
.text:100223ED                 jz      short loc_1002240A
.text:100223EF                 push    0
.text:100223F1                 push    154h
.text:100223F6                 push    offset aServicemodul_0 ; "servicemodulemanagerbase.cpp"
.text:100223FB                 push    0
.text:100223FD                 push    offset aAssertionFa_37 ; "Assertion Failed: pModule->m_hModule =="...
.text:10022402                 call    sub_10047CE0
.text:10022407                 add     esp, 14h
.text:1002240A
.text:1002240A loc_1002240A:                           ; CODE XREF: sub_100223A0+4Dj
.text:1002240A                 push    dword ptr [esi+14h]
.text:1002240D                 push    dword ptr [esi+18h]
.text:10022410                 call    sub_10037FC0
.text:10022415                 add     esp, 8
.text:10022418                 mov     ecx, edi
.text:1002241A                 push    esi
.text:1002241B                 test    eax, eax
.text:1002241D                 jz      short loc_10022433
.text:1002241F                 call    sub_10022880
.text:10022424                 pop     edi
.text:10022425                 mov     dword ptr [esi+10h], 0Bh
.text:1002242C                 xor     al, al
.text:1002242E                 pop     esi
.text:1002242F                 pop     ebp
.text:10022430                 retn    8
.text:10022433 ; ---------------------------------------------------------------------------
.text:10022433
.text:10022433 loc_10022433:                           ; CODE XREF: sub_100223A0+7Dj
.text:10022433                 test    byte ptr [ebp+0Ch], 2
.text:10022437                 jz      short loc_10022440
.text:10022439                 call    sub_100225F0
.text:1002243E                 jmp     short loc_10022445
.text:10022440 ; ---------------------------------------------------------------------------
.text:10022440
.text:10022440 loc_10022440:                           ; CODE XREF: sub_100223A0+97j
.text:10022440                 call    sub_10022650
.text:10022445
.text:10022445 loc_10022445:                           ; CODE XREF: sub_100223A0+9Ej
.text:10022445                 cmp     dword ptr [esi+0Ch], 0
.text:10022449                 jnz     short loc_1002245B
.text:1002244B                 push    esi
.text:1002244C                 mov     ecx, edi
.text:1002244E                 call    sub_10022880
.text:10022453                 pop     edi
.text:10022454                 xor     al, al
.text:10022456                 pop     esi
.text:10022457                 pop     ebp
.text:10022458                 retn    8
.text:1002245B ; ---------------------------------------------------------------------------
.text:1002245B
.text:1002245B loc_1002245B:                           ; CODE XREF: sub_100223A0+A9j
.text:1002245B                 lea     ecx, [esi+20h]
.text:1002245E                 call    sub_100301C0
.text:10022463                 cmp     dword ptr [esi+18h], 0
.text:10022467                 jz      short loc_10022481
.text:10022469                 call    sub_1004D360
.text:1002246E                 push    0
.text:10022470                 push    dword ptr [esi+18h]
.text:10022473                 mov     ecx, eax
.text:10022475                 mov     edx, [eax]
.text:10022477                 call    dword ptr [edx+1Ch]
.text:1002247A                 mov     dword ptr [esi+18h], 0
.text:10022481
.text:10022481 loc_10022481:                           ; CODE XREF: sub_100223A0+Ej
.text:10022481                                         ; sub_100223A0+C7j
.text:10022481                 pop     edi
.text:10022482                 mov     al, 1
.text:10022484                 pop     esi
.text:10022485                 pop     ebp
.text:10022486                 retn    8
.text:10022489 ; ---------------------------------------------------------------------------
.text:10022489
.text:10022489 loc_10022489:                           ; CODE XREF: sub_100223A0+18j
.text:10022489                                         ; sub_100223A0+22j
.text:10022489                 pop     edi
.text:1002248A                 mov     dword ptr [esi+10h], 0Ch
.text:10022491                 xor     al, al
.text:10022493                 pop     esi
.text:10022494                 pop     ebp
.text:10022495                 retn    8
.text:10022495 sub_100223A0    endp

 

 

pseudo

Скрытый текст

char __stdcall sub_100223A0(int a1, char a2)
{
  int v3; // eax@16

  if ( *(_DWORD *)(a1 + 12) )
    return 1;
  if ( *(_DWORD *)(a1 + 24) && *(_DWORD *)(a1 + 20) )
  {
    if ( *(_DWORD *)(a1 + 8) )
      sub_10047CE0("Assertion Failed: pModule->m_pModule == NULL", 0, "servicemodulemanagerbase.cpp", 339, 0);
    if ( *(_DWORD *)(a1 + 4) )
      sub_10047CE0("Assertion Failed: pModule->m_hModule == NULL", 0, "servicemodulemanagerbase.cpp", 340, 0);
    if ( sub_10037FC0(*(void **)(a1 + 24), *(_DWORD *)(a1 + 20)) )
    {
      sub_10022880(a1);
      *(_DWORD *)(a1 + 16) = 11;
      return 0;
    }
    if ( a2 & 2 )
      sub_100225F0(a1);
    else
      sub_10022650(a1);
    if ( !*(_DWORD *)(a1 + 12) )
    {
      sub_10022880(a1);
      return 0;
    }
    sub_100301C0(a1 + 32);
    if ( *(_DWORD *)(a1 + 24) )
    {
      v3 = sub_1004D360();
      (*(void (__thiscall **)(int, _DWORD, _DWORD))(*(_DWORD *)v3 + 28))(v3, *(_DWORD *)(a1 + 24), 0);
      *(_DWORD *)(a1 + 24) = 0;
    }
    return 1;
  }
  *(_DWORD *)(a1 + 16) = 12;
  return 0;
}

 

 

 

Изменено пользователем partoftheworlD
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделай лоадер, в котором запускай процесс стима в приостановленном состоянии, затем - вешай хук на LoadLibrary и пускай проект дальше.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ. Можно закрывать.
Вот модули VAC3, если кому интересно будет по ковырять их.Часть из них появлялась в temp при запуске стима, часть при запуске игры.

 

vac_3.zip

Изменено пользователем partoftheworlD
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Закрываю.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.