冥界3大法王 发表于 2022-11-6 14:08

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)修改之后启动文件被修改的提示就没了!

hkhkhk 发表于 2022-11-12 16:15

玩转破解,解字当先;解者分也,破者拆也;四个战机,切莫错过;
细找端倪,布施陷井,验证猜测;三种断点,变换组合,神法无限;
步步为营,蜕皮抽茧,拨开疑云;不明其理,茫茫代码,累死傻小;
软件冷血,实则有轨,看透表象;冥冥之中,有法可寻,皆有标记;
弹框广告,字串抓包,暂停回溯;时间限制,文件键值,找到除之;
重启验证,乐趣多多,顶部改之;网络黑单,断了网儿,一切瞎鬼;

冥界3大法王 发表于 2022-11-10 10:00

破匣求禅 发表于 2022-11-8 21:48
能不能直接修改文件的签名,把检测正常的文件签名赋给pah,要怎么实现呢

@破匣求禅
得花人民币实现了吧?
你看人家cnpack(一款Delphi辅助工具)
安装时,上来就会弹个框,意思是不正途程序,点左下角才能安装。
花钱的,估计有公私钥吧,就能用工具生成了。盗版的就不清楚了。

kingzswang 发表于 2022-11-6 14:29

优秀!!!!!

winthing 发表于 2022-11-6 16:20

优秀!!!

lwp72495lwp 发表于 2022-11-6 18:15

优秀!!!

dayannanhai121 发表于 2022-11-6 18:24

优秀!!!!

thghx 发表于 2022-11-6 18:39

虽然看不懂,但是不影响点赞,向大礼膜拜!

id3389 发表于 2022-11-6 20:22

厉害厉害

蓝色马蹄莲 发表于 2022-11-6 20:29

反向思考一下:是不是可以利用【call dword ptr ds:[<&WinVerifyTrust>] 】这个地方的修改,来阻止EXE文件的运行,成为禁止运行的手法之一?

准备好惜头未 发表于 2022-11-7 10:20

非常的有用,学习了

KyrieIrving11 发表于 2022-11-7 10:56

感谢分享
页: [1] 2 3
查看完整版本: 2021年遗留问题:数字签名