- UID
- 20912
注册时间2006-8-25
阅读权限30
最后登录1970-1-1
龙战于野

该用户从未签到
|
发表于 2007-5-17 11:51:13
|
显示全部楼层
- 00401D51 |> /8B06 |/mov eax, dword ptr [esi]
- 00401D53 |. |A9 00000080 ||test eax, 80000000
- 00401D58 |. |75 18 ||jnz short 00401D72
- 00401D5A |. |50 ||push eax
- 00401D5B |. |FF75 08 ||push dword ptr [ebp+8]
- 00401D5E |. |E8 5D000000 ||call 00401DC0
- 00401D63 |. |0BC0 ||or eax, eax
- 00401D65 |. |74 0B ||je short 00401D72
- 00401D67 |. |0345 08 ||add eax, dword ptr [ebp+8]
- 00401D6A |. |83C0 02 ||add eax, 2
- 00401D6D |. |E8 FF040000 ||call 00402271
- 00401D72 |> |83C6 04 ||add esi, 4
- 00401D75 |> |833E 00 | cmp dword ptr [esi], 0
- 00401D78 |.^\75 D7 |\jnz short 00401D51
复制代码
LZ 能顺利完成第二课作业,可见上面这一段反汇代码必能分析,
算法分析也就是这样一段一段跳转组成,无非就是把每一段的功能还原,再连在一起而已!
其中技巧也仅是分析完一段跳转之后用高级语言实现相同功能,然后分析下一段,如此循环!
如果楼主不介意,可能通过这种分析方式分析一下UPX壳解压代码的那段关键部分!时间无限,关键是你有没有信心去一直分析,直到完成! |
|