吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2147|回复: 6
收起左侧

[求助] 老魔头,快来帮助哥们把V14干掉

[复制链接]
冥界3大法王 发表于 2022-2-3 18:45
void __fastcall sub_140120AB0(_DWORD *a1)
{
  __int64 v2; // rax
  __int64 v3; // rbx
  __int64 v4; // r14
  __int64 v5; // r8
  int v6; // ebx
  _OWORD *v7; // rax
  __int64 v8; // r8
  __int64 v9; // rbx
  __int64 v10; // rcx
  _QWORD *v11; // r15
  unsigned int v12; // ebx
  unsigned int v13; // er14
  const wchar_t *v14; // rdx
  const wchar_t *v15; // rdx
  __int64 v16; // rbx
  char v17[8]; // [rsp+2A0h] [rbp-348h] BYREF
  __int128 v18[4]; // [rsp+2A8h] [rbp-340h] BYREF
  __int128 *v19; // [rsp+2F0h] [rbp-2F8h]
  _OWORD *v20; // [rsp+2F8h] [rbp-2F0h]
  char v21[8]; // [rsp+300h] [rbp-2E8h] BYREF
  __int64 v22; // [rsp+308h] [rbp-2E0h]
  char v23[16]; // [rsp+310h] [rbp-2D8h] BYREF
  __int64 v24; // [rsp+320h] [rbp-2C8h]
  _QWORD *v25; // [rsp+328h] [rbp-2C0h]
  const wchar_t *v26; // [rsp+3E8h] [rbp-200h] BYREF
  char v27[8]; // [rsp+3F0h] [rbp-1F8h] BYREF
  char v28[8]; // [rsp+3F8h] [rbp-1F0h] BYREF
  char v29[8]; // [rsp+400h] [rbp-1E8h] BYREF
  __int128 v30; // [rsp+408h] [rbp-1E0h] BYREF
  __int64 v31; // [rsp+418h] [rbp-1D0h] BYREF
  __m128i v32; // [rsp+428h] [rbp-1C0h]
  __int128 v33; // [rsp+438h] [rbp-1B0h] BYREF
  __int128 v34; // [rsp+448h] [rbp-1A0h] BYREF

  v34 = 0i64;
  v2 = (*(__int64 (__fastcall **)(__int64 *, char *))(qword_1403843A8 + 48))(&qword_1403843A8, v21);
  TEXTFUNCLIB::CreatePatternMatcher(&v34, 2i64, 0i64, v2);
  v3 = v22;
  if ( v22 )
  {
    if ( _InterlockedExchangeAdd((volatile signed __int32 *)sub_140003A60(v22 + 8), 0xFFFFFFFF) == 1 )
    {
      (*(void (__fastcall **)(__int64))(*(_QWORD *)v3 + 8i64))(v3);
      if ( _InterlockedExchangeAdd((volatile signed __int32 *)sub_140003A60(v3 + 12), 0xFFFFFFFF) == 1 )
        (*(void (__fastcall **)(__int64))(*(_QWORD *)v3 + 16i64))(v3);
    }
  }
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v29);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v27);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(&v26);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v28);
  if ( CWnd::UpdateData((CWnd *)a1, 1) )
  {
    v4 = 0i64;
    v31 = 0i64;
    v32 = _mm_load_si128((const __m128i *)&xmmword_140279B60);
    CWnd::GetWindowTextW(a1 + 2826, v29);
    CWnd::GetWindowTextW(a1 + 3986, v27);
    v18[0] = 0i64;
    LOBYTE(v5) = a1[5148] != 0;
    v6 = (*(__int64 (__fastcall **)(_QWORD, char *, __int64, __int64, char, __int128 *, char *, _QWORD))(*(_QWORD *)v34 + 16i64))(
           v34,
           v29,
           v5,
           1i64,
           1,
           v18,
           v28,
           0i64);
    sub_14005C4A0(v18);
    if ( v6 < 0 )
    {
      ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::operator=(&v26, v28);
      goto LABEL_25;
    }
    v33 = 0i64;
    v7 = operator new(0x50ui64);
    v20 = v7;
    if ( v7 )
    {
      *v7 = 0i64;
      v7[1] = 0i64;
      v7[2] = 0i64;
      v7[3] = 0i64;
      v7[4] = 0i64;
      v4 = sub_14007FA00(v7, v27, 1i64);
    }
    sub_140082710(&v33, v4);
    if ( (*(unsigned int (__fastcall **)(_QWORD, __int128 *))(*(_QWORD *)v34 + 8i64))(v34, &v33) )
    {
      if ( qword_140384770 )
      {
        v15 = (const wchar_t *)(*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)qword_140384770 + 88i64))(
                                 qword_140384770,
                                 247i64);
        goto LABEL_22;
      }
    }
    else
    {
      if ( (*(unsigned __int8 (__fastcall **)(_QWORD))(*(_QWORD *)v33 + 48i64))(v33) )
      {
        LOBYTE(v8) = 1;
        v9 = *(_QWORD *)(*(__int64 (__fastcall **)(_QWORD, char *, __int64))(*(_QWORD *)v33 + 56i64))(v33, v23, v8);
        v24 = v9;
        sub_1400805E0(v23);
        v30 = 0i64;
        v25 = *(_QWORD **)(v9 + 8);
        v19 = &v30;
        *(_QWORD *)&v30 = *v25;
        v10 = v25[1];
        *((_QWORD *)&v30 + 1) = v10;
        if ( v10 )
          _InterlockedExchangeAdd((volatile signed __int32 *)sub_140003A60(v10 + 8), 1u);
        v11 = (_QWORD *)ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Mid(v27, v17);
        v12 = *(_DWORD *)(v30 + 12);
        v13 = *(_DWORD *)(v30 + 8);
        if ( qword_140384770 )
          v14 = (const wchar_t *)(*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)qword_140384770 + 88i64))(
                                   qword_140384770,
                                   245i64);
        else
          v14  = L"<no language>";
        ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Format(&v26, v14 , v13, v12, *v11);
        ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::~CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v17);
        sub_140084120(&v30);
        goto LABEL_23;
      }
      if ( qword_140384770 )
      {
        v15 = (const wchar_t *)(*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)qword_140384770 + 88i64))(
                                 qword_140384770,
                                 246i64);
LABEL_22:
        ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::operator=(&v26, v15);
LABEL_23:
        sub_140080820(&v33);
LABEL_25:
        CWnd::SetWindowTextW((CWnd *)(a1 + 1666), v26);
        CWnd::SetFocus((CWnd *)(a1 + 3986));
        sub_140004730(&v31);
        goto LABEL_26;
      }
    }
    v15 = L"<no language>";
    goto LABEL_22;
  }
LABEL_26:
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::~CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v28);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::~CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(&v26);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::~CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v27);
  ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::~CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>(v29);
  v16 = *((_QWORD *)&v34 + 1);
  if ( *((_QWORD *)&v34 + 1)
    && _InterlockedExchangeAdd((volatile signed __int32 *)sub_140003A60(*((_QWORD *)&v34 + 1) + 8i64), 0xFFFFFFFF) == 1 )
  {
    (*(void (__fastcall **)(__int64))(*(_QWORD *)v16 + 8i64))(v16);
    if ( _InterlockedExchangeAdd((volatile signed __int32 *)sub_140003A60(v16 + 12), 0xFFFFFFFF) == 1 )
      (*(void (__fastcall **)(__int64))(*(_QWORD *)v16 + 16i64))(v16);
  }
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Lucifer_BW + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 冥界3大法王 发表于 2022-2-3 19:09
哪位大神看得懂IDA?
这句话不明白。
image.png

点评

你可以理解成 v26 = v15  发表于 2022-2-4 00:35
大大泡泡糖121 发表于 2022-2-4 09:44
李杨 发表于 2022-2-4 14:22
yzitcast843 发表于 2022-2-4 19:08
c++ 运算符重载,一般是上面那个哥们说的,v26=v25,为什么跳到哪里我们也不清楚,你都是老手了,前面那一堆模板初始化不需要看,
QAQ~QL 发表于 2022-2-4 21:40
冥界3大法王 发表于 2022-2-3 19:09
哪位大神看得懂IDA?
这句话不明白。

看不懂就直接IDA动调就好了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表