Skip to content

hzqst/DisableNvidiaScreenshot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DisableNvidiaScreenshot

干掉N卡截图

char __fastcall sub_18003BB90(__int64 a1, __int64 a2, char a3)
{
  unsigned int v3; // edi
  __int64 v5; // rcx
  _BYTE *v7; // rdx
  int v8; // eax
  __int64 v9; // rax
  __int64 v10; // rax
  unsigned __int64 v11; // rcx
  __int64 v12; // rcx
  __int64 v13; // rax
  __int64 v14; // rdi
  __int64 v15; // rcx
  int v16; // eax
  __int64 v17; // rdx
  __int64 v18; // r8
  unsigned int v19; // ecx
  int v20; // eax
  _BYTE *v21; // rax
  __int64 v22; // rcx
  __int64 v24; // rcx
  _QWORD v25[3]; // [rsp+20h] [rbp-48h] BYREF
  int v26; // [rsp+38h] [rbp-30h]
  __int64 v27; // [rsp+3Ch] [rbp-2Ch]
  __int64 v28; // [rsp+44h] [rbp-24h]
  int v29; // [rsp+4Ch] [rbp-1Ch]
  __int64 v30; // [rsp+50h] [rbp-18h]
  __int64 v31; // [rsp+58h] [rbp-10h]

  v3 = 0;
  v25[0] = 131136LL;
  v27 = 0LL;
  v5 = *(_QWORD *)(a1 + 24);
  v28 = 0LL;
  v30 = 0LL;
  if ( !v5 || !*(_QWORD *)(a1 + 16) )
  {
    sub_180001C21(v5);
    sub_180008F6C(7LL, "CSPCaptureScreenShot::CaptureScreenShot: Invalid m_D3DResInfo");
    return 0;
  }
  v7 = *(_BYTE **)a1;
  v25[2] = *(_QWORD *)(a1 + 16);
  v8 = *(_DWORD *)(a1 + 36);
  v25[1] = v5;
  LOBYTE(v5) = 0;
  v26 = v8;
  v29 = *(_DWORD *)(a1 + 48);
  if ( *v7 )
  {
    v9 = *((_QWORD *)v7 + 2);
    if ( !v9 )
      goto LABEL_9;
  }
  else
  {
    v9 = *((_QWORD *)v7 + 1);
    if ( !v9 )
    {
LABEL_40:
      sub_180001C21(v5);
      sub_180008F6C(7LL, "CSPCaptureScreenShot::CaptureScreenShot: MMF GetSize() Failed %d", v3);
      return 0;
    }
  }
  v10 = *(_QWORD *)(v9 + 8);
  if ( v10 )
  {
    v3 = *(_DWORD *)(v10 + 16);
    LOBYTE(v5) = v3 != 0;
  }
LABEL_9:
  if ( !(_BYTE)v5 )
    goto LABEL_40;
  v11 = (unsigned int)(*(_DWORD *)(a1 + 60) * *(_DWORD *)(a1 + 64) * *(_DWORD *)(a1 + 68)) + 163LL;
  if ( v3 < v11 )
  {
    sub_180001C21(v11);
    sub_180008F6C(7LL, "CSPCaptureScreenShot::CaptureScreenShot: MMF Invalid MMF or MMF size ");
    return 0;
  }
  if ( *v7 )
  {
    v12 = *((_QWORD *)v7 + 2);
    if ( v12 )
    {
      v13 = sub_180005524(v12, 0LL, 0LL);
      goto LABEL_16;
    }
LABEL_38:
    sub_180001C21(v12);
    sub_180008F6C(7LL, "CSPCaptureScreenShot::CaptureScreenShot: Screenshot MMFLocked data pointer failed %d", 0);
    return 0;
  }
  v12 = *((_QWORD *)v7 + 1);
  if ( !v12 )
    goto LABEL_38;
  v13 = sub_180003E22(v12, 0LL, 0LL);
LABEL_16:
  v14 = v13;
  if ( !v13 )
    goto LABEL_38;
  v15 = *(_QWORD *)(a1 + 8);
  v31 = v13 + 160;
  v16 = (*(__int64 (__fastcall **)(__int64, _QWORD *))(*(_QWORD *)v15 + 8LL))(v15, v25);
  if ( v16 )
  {
    dword_1802BFF70 = 7;
    if ( dword_1802C00AC <= 7 )
      sub_18000A1D7(
        &off_1802BFF60,
        "CSPCaptureScreenShot::CaptureScreenShot: Screenshot Capture Frame Failed(0x%X)",
        v16);
    if ( *(_QWORD *)a1 )
    {
      sub_180009CC3(a1);
      return 0;
    }
    return 0;
  }
  v19 = *(_DWORD *)(a1 + 32);
  if ( v19 == 9 )
  {
    v20 = v30;
    if ( (_DWORD)v30 == 113 )
    {
      LODWORD(v30) = 10;
    }
    else
    {
      v17 = 87LL;
      if ( (_DWORD)v30 == 21 )
        v20 = 87;
      LODWORD(v30) = v20;
    }
  }
  *(_DWORD *)(v14 + 24) = v19;
  *(_DWORD *)(v14 + 20) = v29;
  *(_DWORD *)(v14 + 8) = HIDWORD(v27);
  *(_QWORD *)(v14 + 12) = v28;
  *(_DWORD *)(v14 + 28) = v30;
  if ( v19 >= 0xC0 && (((v19 & 0xFFFFFFF0) + 0x80000000) & 0xEFFFFFFF) != 0 )
  {
    if ( a3 )
    {
      v21 = *(_BYTE **)a1;
      if ( **(_BYTE **)a1 )
      {
        v22 = *((_QWORD *)v21 + 2);
        if ( v22 )
        {
          sub_180006280(v22, v17, v18);
          return 1;
        }
      }
      else
      {
        v24 = *((_QWORD *)v21 + 1);
        if ( v24 )
        {
          sub_18000B780(v24, v17, v18);
          return 1;
        }
      }
    }
  }
  else
  {
    sub_180009CC3(a1);
  }
  return 1;
}

关键

.text:000000018003BCA4                 call    qword ptr [rax+8]

当然也可以替换自己的截图 v13 v14为共享内存的buffer

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%