partoftheworlD Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 (изменено) Есть проверка которая проверяет как инжектить анти-чит через 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; } Изменено 11 октября, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 Сделай лоадер, в котором запускай процесс стима в приостановленном состоянии, затем - вешай хук на LoadLibrary и пускай проект дальше. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 (изменено) Спасибо за ответ. Можно закрывать. Вот модули VAC3, если кому интересно будет по ковырять их.Часть из них появлялась в temp при запуске стима, часть при запуске игры. vac_3.zip Изменено 11 октября, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 Закрываю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения