不好意思 大家见笑了
因为遇到了一个2.0的 所以就想来学习一下
上网下了一个
虽然已经更新版本了 但是脱壳还是一样的
按照fly大侠的文章走了十几遍(水平太低了 呵呵 只好一遍一遍地走了)
学习感受了一下 有几个问题想问一下大家
1."把EAX的值修改为GetProcAddress的地址,WinXP下这个地址是77E5A5FD"
我的是ds:[0163B278]=77E6D2D3 (kernel32.GetProcAddress)
是不是XP的版本不一样 这个数值就不一样呢?
2."三、、Pre-Dip:用你自己的名字注册"
fly大侠写的这一部分我还是不懂 "硬盘指纹"是什么? 为什么和它有关呢?
=============================
00418E50 8B4424 04 mov eax,dword ptr ss:[esp+4]
00418E54 A3 A8604900 mov dword ptr ds:[4960A8],eax
//EAX=00A239BD 保存注册名的地方 ★
=============================
我下的这个版本有两处[esp+4],[esp+8](只修改一处会异常)
我都改了 结果得到一个未注册版本(只是试用期超乎想象的长)
3."修改OEP=0003EFE8、RVA=00076000、Size=0000083C,获取输入表"
我是自动获得的 Size=00000864 <=======这样获取得输入表有一段无法解析
按照文章中的 Size=0000083C <=======全部有用
这个值是怎么得到的呢?也是需要看IAT时自己算吗?
4.因为是未注册版本 需要小修一下
在字符参考中搜索"licensed" ;看代码..... 回找
00402A46 . A1 0C724900 mov eax, dword ptr ds:[49720C] <==X
00402A4B . 85C0 test eax, eax
00402A4D . 0F84 73010000 je RegClean.00402BC6
00402A53 . 68 14724900 push RegClean.00497214
00402A58 . 8D4424 10 lea eax, dword ptr ss:[esp+10]
00402A5C . 68 54F74800 push RegClean.0048F754 ; ASCII "This product is licensed to: "
--------
在转存中跟随地址.......然后查找参考.......
找到一个赋值的语句
004193B6 |. 33C9 xor ecx, ecx <===就改这里了
004193B8 |. 8B15 AC0C4900 mov edx, dword ptr ds:[490CAC]
004193BE |. 85C0 test eax, eax
004193C0 |. A1 A80C4900 mov eax, dword ptr ds:[490CA8]
004193C5 |. 8915 18724900 mov dword ptr ds:[497218], edx
004193CB |. 0F9FC1 setg cl
004193CE |. 890D 0C724900 mov dword ptr ds:[49720C], ecx <===X
33C9==>8BC9
改了后是注册版 就是没说注册给谁了 555555555
先不管了 我只要感受一下脱壳就好了
也希望大家能给我一些指点 再次感谢fly大侠的好文章