吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 888|回复: 4
收起左侧

[新手问题] 求助壳解码问题

[复制链接]
朱朱你堕落了 发表于 2024-2-28 10:11
450吾爱币
我看黑鹰脱壳视频中跳过穿山甲IAT加密时,先修改JMP,等IAT处理完毕后,再恢复原始指令。
看网上的贴子也说,修改JMP的地方参与了程序后面的解码,如果不恢复原始指令,会导致后面
解码错误,从而导致了程序错误而退出。

请问,如何证明它参与了后续代码的解码?谢谢。

视频如下:
https://www.123pan.com/s/YL29-faVOh.html


最佳答案

查看完整内容

通过跟踪程序的运行可以证明: 1、 按教程里跟踪到这里以后,02395D12 地址下单字节硬件访问断点, [mw_shl_code=asm,true]02395CE1 | 8B0D AC403C02 | mov ecx,dword ptr ds:[23C40AC] | 02395CE7 | 89040E | mov dword ptr ds:[esi+ecx],eax | 02395CEA | A1 AC403C02 | ...

免费评分

参与人数 1吾爱币 +1 收起 理由
董督秀 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

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

cndml 发表于 2024-2-28 10:11
本帖最后由 cndml 于 2024-3-5 22:00 编辑

通过跟踪程序的运行可以证明:
1、 按教程里跟踪到这里以后,02395D12 地址下单字节硬件访问断点,
[Asm] 纯文本查看 复制代码
02395CE1                   | 8B0D AC403C02           | mov ecx,dword ptr ds:[23C40AC]                          |
02395CE7                   | 89040E                  | mov dword ptr ds:[esi+ecx],eax                          |
02395CEA                   | A1 AC403C02             | mov eax,dword ptr ds:[23C40AC]                          |
02395CEF                   | 391C06                  | cmp dword ptr ds:[esi+eax],ebx                          |
02395CF2                   | 75 16                   | jne 2395D0A                                             |
02395CF4                   | 8D85 B4FEFFFF           | lea eax,dword ptr ss:[ebp-14C]                          |
02395CFA                   | 50                      | push eax                                                |
02395CFB                   | FF15 BC623B02           | call dword ptr ds:[<&LoadLibraryA>]                     |
02395D01                   | 8B0D AC403C02           | mov ecx,dword ptr ds:[23C40AC]                          |
02395D07                   | 89040E                  | mov dword ptr ds:[esi+ecx],eax                          |
02395D0A                   | A1 AC403C02             | mov eax,dword ptr ds:[23C40AC]                          |
02395D0F                   | 391C06                  | cmp dword ptr ds:[esi+eax],ebx                          |
02395D12                   | 0F84 2F010000           | je 2395E47                                              |
02395D18                   | 33C9                    | xor ecx,ecx                                             |
02395D1A                   | 8B07                    | mov eax,dword ptr ds:[edi]                              |

2、第一次断在这里,执行到返回,会再次断下,发现此处是对代码进行了加密。
[Asm] 纯文本查看 复制代码
023813C2                   | 8B12                    | mov edx,dword ptr ds:[edx]                              |
023813C4                   | 8955 E4                 | mov dword ptr ss:[ebp-1C],edx                           |
023813C7                   | 816D 08 4786C861        | sub dword ptr ss:[ebp+8],61C88647                       |
023813CE                   | 8BF2                    | mov esi,edx                                             |
023813D0                   | 8BFA                    | mov edi,edx                                             |
023813D2                   | C1EE 05                 | shr esi,5                                               |

3、执行两次ret后,到达这里:注意看堆栈数据,经过测试,第一个参数是01,表示加密,00是解密。第二个参数是代码长度210h,第三个参数是起始地址,第四个参数是双字密钥。
[Asm] 纯文本查看 复制代码
02395E86                   | A1 28C13B02             | mov eax,dword ptr ds:[23BC128]                          |
02395E8B                   | 8B0D F8003C02           | mov ecx,dword ptr ds:[23C00F8]                          |
02395E91                   | 03C8                    | add ecx,eax                                             |
02395E93                   | 51                      | push ecx                                                |
02395E94                   | FF75 DC                 | push dword ptr ss:[ebp-24]                              |
02395E97                   | E8 10B6FEFF             | call 23814AC                                            |
02395E9C                   | 83C4 10                 | add esp,10                                              |

堆栈数据:
00189224         F5651CEC         
00189228         02395C4C         
0018922C         00000210         
00189230         00000001         
00189234         0018EAB4         
00189238         B4BB6FC9         
0018923C         00000000         
4、f9继续运行,再次断在这里,这里位于text1段内,此段程序被多次执行,ret几次后,通过堆栈中的参数,会知道这是对代码进行计算后得到一个双字的密钥,并存储与堆栈中,密钥地址下断点执行。
[Asm] 纯文本查看 复制代码
004E809C                   | 33D2                    | xor edx,edx                                             |
004E809E                   | 8A11                    | mov dl,byte ptr ds:[ecx]                                |
004E80A0                   | 8B45 08                 | mov eax,dword ptr ss:[ebp+8]                            |
004E80A3                   | 33C2                    | xor eax,edx                                             |
004E80A5                   | 25 FF000000             | and eax,FF                                              |
004E80AA                   | 8B4D 08                 | mov ecx,dword ptr ss:[ebp+8]                            |
004E80AD                   | C1E9 08                 | shr ecx,8                                               |

5、执行后会断在这里:对比第三步,以及堆栈中的参数,会发现,这次是解密数据,密钥是iat加密那段代码被加密后计算得到的,证明完毕!
[Asm] 纯文本查看 复制代码
023A1A41                   | 53                      | push ebx                                                |
023A1A42                   | 03C8                    | add ecx,eax                                             | eax:&"u=繡*Hv="
023A1A44                   | FF35 2CC33B02           | push dword ptr ds:[23BC32C]                             |
023A1A4A                   | 51                      | push ecx                                                |
023A1A4B                   | FF75 E0                 | push dword ptr ss:[ebp-20]                              |
023A1A4E                   | E8 59FAFDFF             | call 23814AC                                            |

堆栈数据:
00181FFC         5CC68B8C         
00182000         023A1A78         
00182004         0000013E         
00182008         00000000         
0018200C         00000007         

免费评分

参与人数 1热心值 +1 收起 理由
爱飞的猫 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

Hmily 发表于 2024-2-28 10:55
不恢复后面就挂了不就是吗。。。。也许是校验了自身代码是否被修改吧,具体不太清楚,我没有跟过。

点评

对,不恢复后面就挂了这只是表面肉眼看到的,具体是如何跟出来,具体细节是如何的,所以才需要证明啊。  详情 回复 发表于 2024-2-28 10:58
 楼主| 朱朱你堕落了 发表于 2024-2-28 10:58
Hmily 发表于 2024-2-28 10:55
不恢复后面就挂了不就是吗。。。。也许是校验了自身代码是否被修改吧,具体不太清楚,我没有跟过。

对,不恢复后面就挂了这只是表面肉眼看到的,具体是如何跟出来,具体细节是如何的,所以才需要证明啊。

点评

你对这个代码下硬件访问,看看哪里计算的呗,别人这么告诉你,肯定是他分析时候遇到了,也没vm,应该不难跟到。  详情 回复 发表于 2024-2-28 11:01
Hmily 发表于 2024-2-28 11:01
朱朱你堕落了 发表于 2024-2-28 10:58
对,不恢复后面就挂了这只是表面肉眼看到的,具体是如何跟出来,具体细节是如何的,所以才需要证明啊。

你对这个代码下硬件访问,看看哪里计算的呗,别人这么告诉你,肯定是他分析时候遇到了,也没vm,应该不难跟到。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-16 02:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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