12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 614|回复: 0

偶然拿到旧硬盘了,发一份梦三国的crc处理代码

[复制链接]

505

主题

505

帖子

1020

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
1020
发表于 2020-2-9 05:02: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代码放出来了~
来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-19 23:37 , Processed in 0.093750 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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