吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30461|回复: 63
收起左侧

[游戏安全] 偶然拿到旧硬盘了,发一份梦三国的crc处理代码

  [复制链接]
quenna 发表于 2017-7-12 01:38
#pragma region MSangoCRC

DWORD MS_CRC1_RET,MS_CRC2_RET;
unsigned char *MS_Memory, *EN_Memory, *dhF_Memory;
unsigned int MS_Memory_Start, MS_Memory_End, EN_Memory_Start, EN_Memory_End, dhF_Memory_Start, dhF_Memory_End;
DWORD dw_ms1_dhfzw = 0x1DAF50;
DWORD dw_ms1_dhfzwRet = 0x18EF01;
DWORD dw_MSSer = 0;
DWORD dw_ms_size, dw_ms_end, dw_en_size, dw_en_end, dw_dhf_size, dw_dhf_end;
DWORD dw_ij, dw_ijend;
long int dw_im, dw_imend;
void _declspec(naked) Ms1_crc()
{
        //检测自身的CRC
        /*
        dhFactory.dll+108C9B - 8B 45 00              - mov eax,[ebp+00]                //这边
        dhFactory.dll+108C9E - F8                    - clc
        dhFactory.dll+108C9F - 66 0FB3 E9            - btr cx,bp
        dhFactory.dll+108CA3 - 66 0FBB D9            - btc cx,bx
        dhFactory.dll+108CA7 - 66 0FBE D1            - movsx dx,cl
        dhFactory.dll+108CAB - 33 C3                 - xor eax,ebx
        */
        VMProtectBegin("ms1crc");
                        _asm
                {
                        cmp ebp, [MS_Memory_Start]
                        jb En1_CRC
                        cmp ebp, [MS_Memory_End]
                        ja En1_CRC
                        sub ebp, [MS_Memory_Start]
                        add ebp, [MS_Memory]
                        jmp Ending_MS1CRC
                En1_CRC:
                        cmp ebp, [EN_Memory_Start]
                        jb dhF1_CRC
                        cmp ebp, [EN_Memory_End]
                        ja dhF1_CRC
                        sub ebp, [EN_Memory_Start]
                        add ebp, [EN_Memory]
                        jmp Ending_MS1CRC
                dhF1_CRC:
                        cmp ebp, [dhF_Memory_Start]
                        jb Ending_MS1CRC
                        cmp ebp, [dhF_Memory_End]
                        ja Ending_MS1CRC
                        sub ebp, [dhF_Memory_Start]
                        add ebp, [dhF_Memory]
                Ending_MS1CRC:
                        mov eax, dword ptr ss : [ebp]
                        clc
                        btr cx, bp
                        jmp[MS_CRC1_RET]
                }
                        VMProtectEnd();
}
void _declspec(naked) Ms2_crc()
{
        //检测自身的CRC的CRC
        /*
        dhFactory.dll+15A30 - 8B 45 00              - mov eax,[ebp+00]
        dhFactory.dll+15A33 - 33 C3                 - xor eax,ebx
        dhFactory.dll+15A35 - C1 C0 10              - rol eax,10
        dhFactory.dll+15A38 - 8B D8                 - mov ebx,eax
        dhFactory.dll+15A3A - B8 5917B7D1           - mov eax,D1B71759
        dhFactory.dll+15A3F - F7 E7                 - mul edi
        dhFactory.dll+15A41 - C1 EA 0C              - shr edx,0C
        */
        VMProtectBegin("ms2crc");
                        _asm
                {
                        cmp ebp, [MS_Memory_Start]
                        jb En2_CRC
                        cmp ebp, [MS_Memory_End]
                        ja En2_CRC
                        sub ebp, [MS_Memory_Start]
                        add ebp, [MS_Memory]
                        jmp Ending_MS2CRC
                En2_CRC:
                        cmp ebp, [EN_Memory_Start]
                        jb dhF2_CRC
                        cmp ebp, [EN_Memory_End]
                        ja dhF2_CRC
                        sub ebp, [EN_Memory_Start]
                        add ebp, [EN_Memory]
                        jmp Ending_MS2CRC
                dhF2_CRC:
                        cmp ebp, [dhF_Memory_Start]
                        jb Ending_MS2CRC
                        cmp ebp, [dhF_Memory_End]
                        ja Ending_MS2CRC
                        sub ebp, [dhF_Memory_Start]
                        add ebp, [dhF_Memory]
                Ending_MS2CRC:
                        mov eax, [ebp + 00]
                        xor eax, ebx
                        jmp[MS_CRC2_RET]
                }
                        VMProtectEnd();
}
void _declspec(naked) ms1_FakeDHFZw()
{
        VMProtectBegin("vmdhfzw");
        __asm{
                push eax
                mov eax, [esp-0x10]
                add eax, 0x1000
                cmp eax, [MS_Memory]
                jl zwEnCheck2
                cmp eax, [dw_ms_end]
                jg zwEnCheck2
                jmp FuckDHzw
        zwEnCheck2 :
                mov eax, [esp - 0x10]
                add eax,0x1000
                cmp eax, [EN_Memory]
                jl zwdhFCheck2
                cmp eax, [dw_en_end]
                jg zwdhFCheck2
                jmp FuckDHzw
        zwdhFCheck2 :
                mov eax, [esp - 0x10]
                add eax, 0x1000
                cmp eax, [dhF_Memory]
                jl zwijCheck2
                cmp eax, [dw_dhf_end]
                jg zwijCheck2
                jmp FuckDHzw
        zwijCheck2 :
                mov eax, [esp - 0x10]
                add eax, 0x1000
                cmp eax, [dw_ij]
                jl zwimCheck2
                cmp eax, [dw_ijend]
                jg zwimCheck2
                jmp FuckDHzw
        zwimCheck2 :
                mov eax, [esp - 0x10]
                add eax, 0x1000
                cmp eax, [dw_im]
                jl NofuckDHzw
                cmp eax, [dw_imend]
                jg NofuckDHzw
        FuckDHzw:
                mov eax, [esp-0x8]
                mov dword ptr ds : [eax], 0x75000000
                mov dword ptr ds : [eax + 0x4], 0x0
                mov dword ptr ds : [eax + 0x8], 0x0
                mov dword ptr ds : [eax + 0xC], 0x1000
                mov dword ptr ds : [eax + 0x10], 0x10000
                mov dword ptr ds : [eax + 0x14], 0x1
        NofuckDHzw:
                pop eax
                jmp[dw_ms1_dhfzwRet]
        }
        VMProtectEnd();
}
#pragma endregion MSango.bin

有特征,建议不用劫持ijl15的方法,因为你没办法隐藏他。所以直接把crc代码放出来了~

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
zx5706112 + 1 + 1 我很赞同!
578814136 + 1 + 1 兄弟你可以发个直接破解出来的么 这万一大神可以用到我们只是玩个游戏看不.
vking + 1 + 1 谢谢@Thanks!
ahmeijian + 1 + 1 谢谢@Thanks!

查看全部评分

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

season 发表于 2017-8-13 13:54
东方大道疯疯癫癫的
 楼主| quenna 发表于 2017-7-13 01:52
shundao8 发表于 2017-7-12 21:03
最近在看冒险岛的最新版本CRC粗滤的找了下貌似也是两个,就是写起来没实践过。

冒险岛自身crc处理方法是这个 ngs的需要处理syscall
zhuiqiubenxing 发表于 2017-7-12 01:44
煮蛋的笨蛋 发表于 2017-7-12 02:49
老哥 有DXF的不
空处 发表于 2017-7-12 06:11
本人基础不好,完成看不懂
zhu628 发表于 2017-7-12 06:50
不懂这些啊!
guo_qun_ 发表于 2017-7-12 07:31
不懂这些啊!
qcwap2012 发表于 2017-7-12 07:40
感谢分享,,
65302666 发表于 2017-7-12 08:20
最近在看冒险岛的最新版本CRC粗滤的找了下貌似也是两个,就是写起来没实践过。
超神只是一瞬间 发表于 2017-7-12 08:51
感谢分享!
头像被屏蔽
zenaiwen 发表于 2017-7-12 09:01
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-22 16:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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