2021年遗留问题:数字签名
把某软件的升级检测修改后打补丁输出了;再启动时出来了这。
原来答案很简单:
当来到这里时,慢慢向上找,或跨模块所有调用+程序领空,便能一步定位到关键代码处。
013FF6D1 | 8BEC | mov ebp,esp |
013FF6D3 | 83E4 F8 | and esp,FFFFFFF8 |
013FF6D6 | 81EC 3C070000 | sub esp,73C |
013FF6DC | 803D EC135C01 00 | cmp byte ptr ds:,0 |
013FF6E3 | 53 | push ebx |
013FF6E4 | 56 | push esi | esi:"p\f)"
013FF6E5 | 57 | push edi |
013FF6E6 | 8BD9 | mov ebx,ecx |
013FF6E8 | 0F85 EC010000 | jne patch跳过启动升级检测1_保密.13FF8DA |
013FF6EE | A0 49E15701 | mov al,byte ptr ds: |
013FF6F3 | 3C FF | cmp al,FF |
013FF6F5 | 75 19 | jne patch跳过启动升级检测1_保密.13FF710 |
013FF6F7 | 33D2 | xor edx,edx |
013FF6F9 | B9 2CA15501 | mov ecx,patch跳过启动升级检测1_保密.155A12C | 155A12C:L"SDS"
013FF6FE | E8 0DFD72FF | call <patch跳过启动升级检测1_保密.sub_B2F410> |
013FF703 | 3D 689AC178 | cmp eax,78C19A68 |
013FF708 | 0F94C0 | sete al |
013FF70B | A2 49E15701 | mov byte ptr ds:,al |
013FF710 | 3C 01 | cmp al,1 | 改这里经测试不可以!
013FF712 | 0F84 C2010000 | je patch跳过启动升级检测1_保密.13FF8DA | 尝试在这里跳过!
013FF718 | 83CA FF | or edx,FFFFFFFF |
013FF71B | 8BCB | mov ecx,ebx |
013FF71D | E8 8E0473FF | call <patch跳过启动升级检测1_保密.sub_B2FBB0> |
013FF722 | 85C0 | test eax,eax |
013FF724 | 75 07 | jne patch跳过启动升级检测1_保密.13FF72D |
013FF726 | 5F | pop edi |
013FF727 | 5E | pop esi | esi:"p\f)"
013FF728 | 5B | pop ebx |
013FF729 | 8BE5 | mov esp,ebp |
013FF72B | 5D | pop ebp |
013FF72C | C3 | ret |
013FF72D | 8D4424 24 | lea eax,dword ptr ss: |
013FF731 | C74424 24 10000000 | mov dword ptr ss:,10 |
013FF739 | 894424 4C | mov dword ptr ss:,eax |
013FF73D | 0F57C0 | xorps xmm0,xmm0 |
013FF740 | 8D4424 34 | lea eax,dword ptr ss: |
013FF744 | 66:0F134424 2C | movlpd qword ptr ss:,xmm0 |
013FF74A | 50 | push eax |
013FF74B | 8D4424 18 | lea eax,dword ptr ss: |
013FF74F | 895C24 2C | mov dword ptr ss:,ebx |
013FF753 | 50 | push eax |
013FF754 | 6A 00 | push 0 |
013FF756 | 66:0F134424 44 | movlpd qword ptr ss:,xmm0 |
013FF75C | C74424 50 00000000 | mov dword ptr ss:,0 | :sub_A9DB90
013FF764 | 66:0F134424 5C | movlpd qword ptr ss:,xmm0 |
013FF76A | C74424 64 00000000 | mov dword ptr ss:,0 |
013FF772 | 66:0F134424 6C | movlpd qword ptr ss:,xmm0 |
013FF778 | C74424 40 34000000 | mov dword ptr ss:,34 | :"p\f)", 34:'4'
013FF780 | C74424 4C 02000000 | mov dword ptr ss:,2 |
013FF788 | C74424 54 01000000 | mov dword ptr ss:,1 | :sub_A9DB90
013FF790 | C74424 68 10000000 | mov dword ptr ss:,10 | :&"0嫨"
013FF798 | C74424 20 6BC5AA00 | mov dword ptr ss:,<patch跳过启动升级检测1_保密 | :L"燐豺"
013FF7A0 | C74424 24 44CDD011 | mov dword ptr ss:,11D0CD44 |
013FF7A8 | C74424 28 8CC200C0 | mov dword ptr ss:,C000C28C |
013FF7B0 | C74424 2C 4FC295EE | mov dword ptr ss:,EE95C24F |
013FF7B8 | FF15 704A4B01 | call dword ptr ds:[<&WinVerifyTrust>] ==>此处是数字签名校验的源头(1)修改之后启动文件被修改的提示就没了!
玩转破解,解字当先;解者分也,破者拆也;四个战机,切莫错过;
细找端倪,布施陷井,验证猜测;三种断点,变换组合,神法无限;
步步为营,蜕皮抽茧,拨开疑云;不明其理,茫茫代码,累死傻小;
软件冷血,实则有轨,看透表象;冥冥之中,有法可寻,皆有标记;
弹框广告,字串抓包,暂停回溯;时间限制,文件键值,找到除之;
重启验证,乐趣多多,顶部改之;网络黑单,断了网儿,一切瞎鬼; 破匣求禅 发表于 2022-11-8 21:48
能不能直接修改文件的签名,把检测正常的文件签名赋给pah,要怎么实现呢
@破匣求禅
得花人民币实现了吧?
你看人家cnpack(一款Delphi辅助工具)
安装时,上来就会弹个框,意思是不正途程序,点左下角才能安装。
花钱的,估计有公私钥吧,就能用工具生成了。盗版的就不清楚了。 优秀!!!!! 优秀!!! 优秀!!! 优秀!!!! 虽然看不懂,但是不影响点赞,向大礼膜拜! 厉害厉害 反向思考一下:是不是可以利用【call dword ptr ds:[<&WinVerifyTrust>] 】这个地方的修改,来阻止EXE文件的运行,成为禁止运行的手法之一? 非常的有用,学习了 感谢分享