微信扫一扫 分享朋友圈

已有 627 人浏览分享

[逆向工程] 想學習怎麼找COutPacket::COutPacket的位址

[複製鏈接]

集團新軍

Rank: 1

8

威望

39

金錢

0

A幣
主題
1
帖子
18
精華
0
綜合社群主題發文量
0
電玩社群主題發文量
0
娛樂社群主題發文量
0
技術社群主題發文量
1
閱讀權限
10
註冊時間
2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    petje 發表於  2024-7-31 15:17:30 | 顯示全部樓層 | 閱讀模式
    本帖最後由 petje 於 2024-7-31 15:23 編輯

    各位大大好,我想要學習怎麼尋找v113的COutPacket::COutPacket的位置,方便製作Packet Editor
    但是我用CE搜尋一些找得到的AoB,或者我從v95脫殼主程式ida看到的AoB去找也都找不到

    目前想到的一種方法是從WS2_32.send回推,但實際上我從CE Memory Viewer看到那塊asm以後還是沒什麼頭緒怎麼找到COutPacket::COutPacket

    其實就算我有v113的脫殼主程式,如果沒有前人寫的註解,我還是不知道要怎麼找到COutPacket::COutPacket
    想請各位大大指教! 謝謝!

    共收到 0 A幣
    打賞榜
    暫無
    暫無
    暫無
    暫無
    ----
    暫無
    ----
    暫無
    ----
    暫無
    ----

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-8-1 22:30:55 | 顯示全部樓層
    本帖最後由 g9502995 於 2024-8-1 22:39 編輯
    petje 發表於 2024-8-1 22:18
    喔喔喔 因為我想說Encode函數和封包要傳遞的內容無關 ida看函數裡面是很簡單的邏輯

    我再確認一下,確定 ...

    應該是對的 我也不確定
    你可以鉤鉤看

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-8-1 14:10:42 | 顯示全部樓層
    petje 發表於 2024-8-1 10:01
    謝謝! 原來是這樣找的

    我剛好很幸運,ida的Lumina直接幫我把COutPacket系列都認出來了,我xref一下就 ...

    有圖片嗎

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-7-31 22:59:00 | 顯示全部樓層
    我是靠ida慢慢比對的
    以現有的線索慢慢去推出來的
    先從v095找COutPacket::COutPacket按X找線索
    然後去你的113的ida找你已經命名好的有沒有跟他一樣的這樣比對
    image.png
    image.png

    集團新軍

    Rank: 1

    8

    威望

    39

    金錢

    0

    A幣
    主題
    1
    帖子
    18
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    1
    閱讀權限
    10
    註冊時間
    2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| petje 發表於 2024-8-1 10:01:22 | 顯示全部樓層
    本帖最後由 petje 於 2024-8-1 10:04 編輯
    g9502995 發表於 2024-7-31 22:59
    我是靠ida慢慢比對的
    以現有的線索慢慢去推出來的
    先從v095找COutPacket::COutPacket按X找線索

    謝謝! 原來是這樣找的

    我剛好很幸運,ida的Lumina直接幫我把COutPacket系列都認出來了,我xref一下就找到COutPacket_0是被呼叫幾千次的那個

    我發現程式會呼叫COutPacket_0(&v21, 121)之類的,&v21應該就是我要找的,未加密的封包位置?因為呼叫完COutPacket_0沒多久就CClientSocket::SendPacket了

    但是我找了很久,也找過不同的xref,都找不到&v21從頭到尾哪裡被修改過內容了,&v21好像就是一個local variable,第一次被用到就在COutPacket_0

    想請問你有遇到類似的情況嗎? 謝謝!
    (我有嘗試把&v21 array的值hook, print出來看,完全沒有找到我預期的封包結構,我前後比對很久,&v21應該是用ecx傳給COutPacket的?)

    集團新軍

    Rank: 1

    8

    威望

    39

    金錢

    0

    A幣
    主題
    1
    帖子
    18
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    1
    閱讀權限
    10
    註冊時間
    2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| petje 發表於 2024-8-1 16:00:19 | 顯示全部樓層
    本帖最後由 petje 於 2024-8-1 16:03 編輯

    大概像這樣

    image.png

    1. void __thiscall sub_46DE10(_DWORD *this, void *a2)
    2. {
    3.   int *v3; // ecx
    4.   int v4; // edi
    5.   signed int v5; // eax
    6.   signed int v6; // eax
    7.   int *v7; // eax
    8.   void *v8; // ecx
    9.   int v9; // [esp-18h] [ebp-54h]
    10.   int *v10; // [esp-14h] [ebp-50h] BYREF
    11.   void *v11; // [esp-10h] [ebp-4Ch]
    12.   void *v12; // [esp-Ch] [ebp-48h] BYREF
    13.   int v13; // [esp-8h] [ebp-44h]
    14.   int *v14; // [esp-4h] [ebp-40h]
    15.   unsigned int v15; // [esp+Ch] [ebp-30h] BYREF
    16.   int v16; // [esp+10h] [ebp-2Ch] BYREF
    17.   char v17[4]; // [esp+18h] [ebp-24h] BYREF
    18.   int v18; // [esp+1Ch] [ebp-20h]
    19.   void **v19; // [esp+20h] [ebp-1Ch]
    20.   char v20[4]; // [esp+24h] [ebp-18h] BYREF
    21.   int v21; // [esp+28h] [ebp-14h] BYREF
    22.   int v22; // [esp+2Ch] [ebp-10h] BYREF
    23.   int v23; // [esp+38h] [ebp-4h]

    24.   if ( !this[6] )
    25.   {
    26.     sub_A41F94(v17, a2);
    27.     v4 = v18;
    28.     v23 = 0;
    29.     if ( !v18 )
    30.     {
    31.       v23 = -1;
    32.       sub_474C50(v17);
    33.       return;
    34.     }
    35.     v22 = 0;
    36.     if ( *(_DWORD *)(v18 + 32) )
    37.     {
    38.       v5 = ZtlSecureFuse((int)(this + 7), this[9]);
    39.       if ( v5 >= *(_DWORD *)(v18 + 32) )
    40.         v22 |= 1u;
    41.       v6 = ZtlSecureFuse((int)(this + 10), this[12]);
    42.       v4 = v18;
    43.       v3 = v14;
    44.       if ( v6 >= *(_DWORD *)(v18 + 32) )
    45.         v22 |= 2u;
    46.       if ( !v22 )
    47.       {
    48.         v14 = 0;
    49.         v13 = 0;
    50.         v12 = 0;
    51.         v11 = 0;
    52.         v10 = v3;
    53.         v9 = 392;
    54.         goto LABEL_8;
    55.       }
    56.     }
    57.     else
    58.     {
    59.       v22 = 2;
    60.     }
    61.     if ( (int)this[288] < 15 )
    62.     {
    63.       v21 = 0;
    64.       LOBYTE(v23) = 1;
    65.       StringPool::GetInstance();
    66.       v7 = (int *)sub_40652B(v20, 366);
    67.       v14 = *(int **)(v4 + 32);
    68.       v13 = *v7;
    69.       LOBYTE(v23) = 2;
    70.       sub_4469F4(&v21, (const char *)v13, v14);
    71.       LOBYTE(v23) = 1;
    72.       sub_4063B5(v20);
    73.       v14 = &v22;
    74.       v13 = 3;
    75.       v12 = v8;
    76.       v19 = &v12;
    77.       sub_429FA9(&v21);
    78.       if ( CConfirmPurchaseDlg::Confirm_0((char)v12, v13, v14) == 1 )
    79.       {
    80.         COutPacket::COutPacket_0(&v15, 230);
    81.         LOBYTE(v23) = 3;
    82.         sub_40661F(&v15, 8);
    83.         sub_40661F(&v15, v22 == 2);
    84.         sub_40667C(a2);
    85.         self_CClientSocket__SendPacket((_DWORD *)dword_BED27C, (int)&v15);
    86.         this[6] = 1;
    87.         LOBYTE(v23) = 1;
    88.         sub_42AA52(&v16);
    89.       }
    90.       LOBYTE(v23) = 0;
    91.       sub_4063B5(&v21);
    92.       goto LABEL_18;
    93.     }
    94.     v14 = 0;
    95.     v13 = 0;
    96.     v12 = 0;
    97.     v11 = 0;
    98.     v10 = v3;
    99.     v9 = 370;
    100. LABEL_8:
    101.     StringPool::GetInstance();
    102.     sub_40652B(&v10, v9);
    103.     sub_9B2F6F((char)v10, v11, v12, v13, v14);
    104. LABEL_18:
    105.     v23 = -1;
    106.     if ( v18 )
    107.       sub_474F26(0);
    108.   }
    109. }
    複製代碼


    &v15是第一次出現就出現在COutPacket_0

    sub_40661F 裡面是很簡單的 像是在操作&v15前3個byte的邏輯,或者是EnlargeBuffer,沒看到相關的設置封包的操作
    image.png

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-8-1 21:30:36 | 顯示全部樓層
    不太懂你想幹嘛

    集團新軍

    Rank: 1

    8

    威望

    39

    金錢

    0

    A幣
    主題
    1
    帖子
    18
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    1
    閱讀權限
    10
    註冊時間
    2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| petje 發表於 2024-8-1 21:34:00 | 顯示全部樓層
    g9502995 發表於 2024-8-1 21:30
    不太懂你想幹嘛

    我想做一個Packet Editor
    我想說未解密的封包會出現在COutPacket_0的第一個參數裡

    結果發現並沒看到

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-8-1 21:45:49 | 顯示全部樓層
    本帖最後由 g9502995 於 2024-8-1 22:12 編輯

    image.png 還是你有DC討論一下

    集團新軍

    Rank: 1

    8

    威望

    39

    金錢

    0

    A幣
    主題
    1
    帖子
    18
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    1
    閱讀權限
    10
    註冊時間
    2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| petje 發表於 2024-8-1 22:11:45 | 顯示全部樓層

    這樣看起來COutPacket的第一個參數的確不包含封包內容? v16第一次被用到就是在COutPacket

    看起來我可能應該想辦法找到v22之類的嗎?

    初窺門道

    Rank: 2

    244

    威望

    795

    金錢

    86

    A幣
    主題
    3
    帖子
    46
    精華
    1
    綜合社群主題發文量
    5
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    3
    閱讀權限
    20
    註冊時間
    2016-10-31
  • TA的每日心情
    奮鬥
    2023-10-30 17:29
  • 簽到天數: 65 天

    連續簽到: 3 天

    [LV.6]常住居民II

    g9502995 發表於 2024-8-1 22:14:49 | 顯示全部樓層
    petje 發表於 2024-8-1 22:11
    這樣看起來COutPacket的第一個參數的確不包含封包內容? v16第一次被用到就是在COutPacket

    看起來我可能 ...

    有包含阿
    v16經過多層處理最終發出去啊

    集團新軍

    Rank: 1

    8

    威望

    39

    金錢

    0

    A幣
    主題
    1
    帖子
    18
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    1
    閱讀權限
    10
    註冊時間
    2024-7-31
  • TA的每日心情
    開心
    2024-8-1 16:52
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

     樓主| petje 發表於 2024-8-1 22:18:29 | 顯示全部樓層
    g9502995 發表於 2024-8-1 22:14
    有包含阿
    v16經過多層處理最終發出去啊

    喔喔喔 因為我想說Encode函數和封包要傳遞的內容無關 ida看函數裡面是很簡單的邏輯

    我再確認一下,確定一下未加密的完整封包是不是在SendPacket的最後一個參數裡

    集團新軍

    Rank: 1

    177

    威望

    393

    金錢

    2

    A幣
    主題
    0
    帖子
    39
    精華
    0
    綜合社群主題發文量
    0
    電玩社群主題發文量
    0
    娛樂社群主題發文量
    0
    技術社群主題發文量
    0
    閱讀權限
    10
    註冊時間
    2023-1-13

    該用戶從未簽到

    ff3000 發表於 2024-8-10 16:05:15 | 顯示全部樓層

    &v15表示很傷心,希望你可以多關心&v15
    您需要登錄後才可以回帖 登錄 | 註冊會員

    本版積分規則

    18

    發文

    39

    金錢

    0

    A幣

    ----------榮譽勳章----------

    熱門推薦
    圖文推薦
    • 聯繫我們

    小黑屋|AICL社群娛樂集團

    GMT+8, 2024-11-21 20:18 , 網路刷新 0.126887 秒 .

    歡迎來到 AICL網路社群

    版權AICL社群所有 2011-2021.

    Total:123 Today:213 Online:322