пробило? там всего 4 0day удивлен. прохожу PHDays hackquest о нём темку в ветке античат.квесты запилил. но похоже там премодерация если разберешься - пиши. очень интересно.
4upakabr0 нет, не пробило, просто знаю. хитрый какой, шекеля даёшь? или бартер(Когда-то, Крис aka Мыщъх, пейсал ст0тью, мол нашел багу на интел, вот выдури у него, тогда и поговорим.) хотя, наверн он тогда был под феном, или ещё под чем-то.
мышъха поди достань в его штатах было бы что в моем крякмисе ценного. а то так, в образовательных целях.
однако какой я молодец что сдампил рантайм 11 студии, всем кто дрочит с идой и этим крякми посвящается http://www.sendspace.com/file/wv7lfw
вообщем вам сюда .text:00401650 ; int __cdecl naked_f(signed int argc, wchar_t **argv) разбираться впадлу, берёте иду с хексреем и потихонькупотихоньку Code: int __cdecl naked_f(signed int argc, wchar_t **argv) { wchar_t *pwsCurrent; // edx@5 wchar_t *pwEnd; // ecx@5 wchar_t *pwStart; // esi@5 wchar_t wch; // ax@6 int numWChars; // ecx@7 int cntr; // eax@7 HMODULE hkrn32; // eax@10 void (__stdcall *pIsWow64Process)(HANDLE, BOOL *); // eax@10 unsigned __int64 lowticks; // qax@13 wchar_t *v12; // ST00_4@13 void *v13; // eax@13 int v14; // edi@13 void *v15; // esi@13 bool v16; // bl@16 int v17; // esi@16 int v18; // ecx@22 int v19; // eax@23 int v20; // ecx@27 int v21; // ecx@34 int v22; // eax@35 int v23; // ecx@39 wchar_t *pwMsg; // [sp-8h] [bp-13ECh]@2 signed int v25; // [sp-8h] [bp-13ECh]@23 signed int v26; // [sp-8h] [bp-13ECh]@35 unsigned int v27; // [sp-4h] [bp-13E8h]@1 int v28; // [sp+0h] [bp-13E4h]@1 int v29; // [sp+Ch] [bp-13D8h]@1 char *v30; // [sp+10h] [bp-13D4h]@13 int v31; // [sp+14h] [bp-13D0h]@13 int v32; // [sp+18h] [bp-13CCh]@13 int v33; // [sp+1Ch] [bp-13C8h]@13 __int64 v34; // [sp+20h] [bp-13C4h]@13 BOOL bWow64; // [sp+28h] [bp-13BCh]@10 int v36; // [sp+2Ch] [bp-13B8h]@13 int v37; // [sp+30h] [bp-13B4h]@14 char v38; // [sp+34h] [bp-13B0h]@16 int v39; // [sp+36h] [bp-13AEh]@16 char v40; // [sp+3Ch] [bp-13A8h]@13 unsigned int v41; // [sp+13C4h] [bp-20h]@21 unsigned int v42; // [sp+13C8h] [bp-1Ch]@21 unsigned int v43; // [sp+13CCh] [bp-18h]@21 int v44; // [sp+13D0h] [bp-14h]@21 unsigned int v45; // [sp+13D4h] [bp-10h]@1 int v46; // [sp+13E0h] [bp-4h]@13 v45 = (unsigned int)&v29 ^ __security_cookie; v27 = (unsigned int)&v28 ^ __security_cookie; if ( argc < 3 ) { pwMsg = L"usage: progname.exe login password\n"; facepalm_fail_: WriteMessage(pwMsg, v27); return __security_check_cookie(); } pwsCurrent = argv[2]; pwEnd = argv[2]; pwStart = pwEnd + 1; do { wch = *pwEnd; ++pwEnd; } while ( wch ); numWChars = pwEnd - pwStart; cntr = 0; if ( numWChars > 0 ) { while ( !(*pwsCurrent & 0xFF80) ) { ++cntr; ++pwsCurrent; if ( cntr >= numWChars ) goto prodoljaem; } pwMsg = L"Wrong credentials!"; goto facepalm_fail_; } prodoljaem: hkrn32 = GetModuleHandleW(L"kernel32"); pIsWow64Process = (void (__stdcall *)(HANDLE, BOOL *))GetProcAddress(hkrn32, "IsWow64Process"); bWow64 = 0; pIsWow64Process((HANDLE)-1, &bWow64); if ( !bWow64 ) { pwMsg = L"This program is meant to be run under WOW64 subsystem\n"; goto facepalm_fail_; } lowticks = __rdtsc(); set_tick_cookie((int)&v40, lowticks); v30 = &v40; v31 = 32; v32 = -1; v34 = sub_404980(&v30, 0x1F5u) - 0x7FFFFF9C + 0x80000000; sub_4038B0(&v34); v29 = 0; v33 = (int)sub_4083BC; sub_403500(&v36, &v33, &unk_437F50, &v29); v12 = argv[1]; v46 = 0; v29 = 0; v13 = (void *)sub_4014D0(v12, &v29); v14 = v36; v15 = v13; if ( !v36 || (_BYTE)v37 && *(_BYTE *)(v36 + 28) ) { v30 = (char *)4; v31 = (int)off_43D08C; sub_408F18(&v30); } (*(void (__thiscall **)(int, int))(*(_DWORD *)v36 + 8))(v36, v37); v33 = 1; LODWORD(v34) = sub_4083BC; sub_403550(&v38, &v34, &off_4382F0, &v33, argv + 1); LOBYTE(v46) = 1; v30 = &v40; v31 = 32; v32 = -1; v34 = sub_404980(&v30, 0x1F5u) - 0x7FFFFF9C + 0x80000000; sub_4038B0(&v34); v16 = sub_4083BC(&off_4381C0) != 0; j_j__free(v15); v17 = v39; if ( !v16 ) goto LABEL_46; if ( !v39 || BYTE2(v39) && *(_BYTE *)(v39 + 28) ) { v30 = (char *)4; v31 = (int)off_43D08C; sub_408F18(&v30); } if ( *(_BYTE *)(*(int (__thiscall **)(int, _DWORD))(*(_DWORD *)v39 + 8))(v39, *(int *)((char *)&v39 + 2)) ) { LOWORD(v44) = 0; v41 = 0x740049u; v42 = 0x690020u; v43 = 0x210073u; WriteMessage(&v41, v27); LOBYTE(v46) = 0; if ( !_InterlockedExchangeAdd((signed __int32 *)(v17 + 4), 0xFFFFFFFFu) ) { v18 = *(_DWORD *)(v17 + 40); if ( v18 ) { v19 = *(_DWORD *)v18; v25 = v17; } else { v19 = *(_DWORD *)v17; v25 = 1; v18 = v17; } (*(void (__thiscall **)(int, signed int))v19)(v18, v25); } v46 = -1; if ( !_InterlockedDecrement((signed __int32 *)(v14 + 4)) ) { v20 = *(_DWORD *)(v14 + 40); if ( v20 ) (**(void (__stdcall ***)(_DWORD))v20)(v14); else (**(void (__thiscall ***)(_DWORD, _DWORD))v14)(v14, 1); } } else { LABEL_46: LOBYTE(v46) = 0; if ( v17 && !_InterlockedExchangeAdd((signed __int32 *)(v17 + 4), 0xFFFFFFFFu) ) { v21 = *(_DWORD *)(v17 + 40); if ( v21 ) { v22 = *(_DWORD *)v21; v26 = v17; } else { v22 = *(_DWORD *)v17; v26 = 1; v21 = v17; } (*(void (__thiscall **)(int, signed int))v22)(v21, v26); } v46 = -1; if ( !_InterlockedExchangeAdd((signed __int32 *)(v14 + 4), 0xFFFFFFFFu) ) { v23 = *(_DWORD *)(v14 + 40); if ( v23 ) (**(void (__stdcall ***)(_DWORD))v23)(v14); else (**(void (__thiscall ***)(_DWORD, _DWORD))v14)(v14, 1); } } return __security_check_cookie(); }