int __fastcall sub_4190D0(void *a1, int a2) { signed int v2; // ecx@1 void *v3; // ebx@1 CHAR *v4; // edi@1 char v5; // zf@3 int result; // eax@5 signed int v7; // ecx@5 unsigned int v8; // ecx@5 int v9; // edi@5 char v10; // al@5 const void *v11; // esi@5 void *v12; // edi@5 const void *v13; // esi@5 char v14; // zf@7 unsigned int v15; // edx@9 signed int v16; // ecx@9 signed int v17; // ecx@9 void *v18; // edi@9 const void *v19; // esi@9 char v20; // zf@11 v3 = a1; v4 = &Filename; v2 = -1; do { if ( !v2 ) break; v5 = *v4++ == 0; --v2; } while ( !v5 ); v8 = ~v2; v10 = v8 v11 = &v4[-v8]; v8 >>= 2; memcpy(v3, v11, 4 * v8); v13 = (char *)v11 + 4 * v8; v12 = (char *)v3 + 4 * v8; LOBYTE(v8) = v10; result = 0; memcpy(v12, v13, v8 & 3); v9 = a2; v7 = -1; do { if ( !v7 ) break; v14 = *(_BYTE *)v9++ == 0; --v7; } while ( !v14 ); v17 = ~v7; v19 = (const void *)(v9 - v17); v15 = v17; v18 = v3; v16 = -1; do { if ( !v16 ) break; v20 = *(_BYTE *)v18 == 0; v18 = (char *)v18 + 1; --v16; } while ( !v20 ); memcpy((char *)v18 - 1, v19, v15); return result; }
이 부분인데 제생각에는 여기서 무결성 검사?? 하는거같은데 .. 감이안오네요
중복실행방지하는부분 건너띄게 했더니 파일이 아예 실행이 안되버려서 뒤적뒤적하다 이부분 찾았는데
여기서 파일수정했으면 실행못하게 하는거 같은데.. 물론아닐수도있고요..
맞다 아니다 만 답해주셔도 감사할거같습니다 ㅠㅠ