- UID
- 65325
注册时间2010-2-1
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 郁闷 2017-1-19 11:18 |
---|
签到天数: 6 天 [LV.2]偶尔看看I
|
楼主 |
发表于 2010-4-20 13:46:31
|
显示全部楼层
SNAGTI 破解(转载)
【文章标题】: SnagIt8.2.3破解分析
【文章作者】: 千里之外
【作者QQ号】: 506398911
【软件名称】: SnagIt8.2.3
【下载地址】: 自己搜索下载
【使用工具】: 野猪OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
这个软件是我在学习CAD时知道的 据说是很出名的抓图软件 网络上有好多它的注册码 但是想自己研究下 于是有了下面的文章
^_^
程序开始的时候出现NAG (注册窗口)我们就从这里入手
OD载入 运行程序 F12 暂停 查看堆栈窗口的调用
0012F8D8 |0052F16A 返回到 SnagIt32.0052F16A 来自 <JMP.&MFC80.#2020>
我们返回汇编窗口 来到这里
0052F13A |. E8 D1672000 CALL SnagIt32.00735910 这里下断 分析下 关键CALL 进去看下
0052F13F |. 85C0 TEST EAX,EAX 这里EAX=0 跳转没实现 我们要实现他 才能跳过下面的NAG
0052F141 |. 75 27 JNZ SHORT SnagIt32.0052F16A
0052F143 |. 3946 34 CMP DWORD PTR DS:[ESI+34],EAX
0052F146 |. 75 22 JNZ SHORT SnagIt32.0052F16A 这里也没实现
0052F148 |. 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
0052F14C |. 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
0052F150 |. 894C24 0C MOV DWORD PTR SS:[ESP+C],ECX
0052F154 |. 52 PUSH EDX
0052F155 |. 8D8C24 200100>LEA ECX,DWORD PTR SS:[ESP+120]
0052F15C |. E8 AF401800 CALL SnagIt32.006B3210
0052F161 |. 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
0052F165 |. E8 8C282100 CALL <JMP.&MFC80.#2020> 这里出现NAG
0052F16A |> C74424 10 04F>MOV DWORD PTR SS:[ESP+10],SnagIt32.0088F>
0052F172 |> 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C]
0052F176 |. C78424 D80100>MOV DWORD PTR SS:[ESP+1D8],-1
0052F181 |. E8 3AC32000 CALL SnagIt32.0073B4C0
00735910 /$ 6A FF PUSH -1
00735912 |. 68 1BE98400 PUSH SnagIt32.0084E91B
00735917 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0073591D |. 50 PUSH EAX
0073591E |. 83EC 34 SUB ESP,34
00735921 |. A1 B0039A00 MOV EAX,DWORD PTR DS:[9A03B0]
00735926 |. 33C4 XOR EAX,ESP
00735928 |. 894424 30 MOV DWORD PTR SS:[ESP+30],EAX
0073592C |. 53 PUSH EBX
0073592D |. 55 PUSH EBP
0073592E |. 56 PUSH ESI
0073592F |. 57 PUSH EDI
.................
00735CBF |> \899E C4000000 MOV DWORD PTR DS:[ESI+C4],EBX
00735CC5 |> 8B76 34 MOV ESI,DWORD PTR DS:[ESI+34]
00735CC8 |. 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00735CCC |. FF15 68198600 CALL DWORD PTR DS:[<&MFC80.#578>] ; MFC80.781F3E30
00735CD2 |. 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
00735CD6 |. FF15 68198600 CALL DWORD PTR DS:[<&MFC80.#578>] ; MFC80.781F3E30
00735CDC |. 8BC6 MOV EAX,ESI 这里ESI赋值给EAX 此时ESI=0 我们这样修改
00735CDE |. 8B4C24 48 MOV ECX,DWORD PTR SS:[ESP+48] MOV EAX,1 这样就实现了标志位的爆破
00735CE2 |. 64:890D 00000>MOV DWORD PTR FS:[0],ECX
00735CE9 |. 59 POP ECX
00735CEA |. 5F POP EDI
00735CEB |. 5E POP ESI
00735CEC |. 5D POP EBP
00735CED |. 5B POP EBX
00735CEE |. 8B4C24 30 MOV ECX,DWORD PTR SS:[ESP+30]
00735CF2 |. 33CC XOR ECX,ESP
00735CF4 |. E8 8DD70000 CALL SnagIt32.00743486
00735CF9 |. 83C4 40 ADD ESP,40
00735CFC \. C2 0800 RETN 8
--------------------------------------------------------------------------------
【经验总结】
1.开始我从注册错误提示那里下手 怎么也断不下来 走了不少弯路 对待NAG 还是F12暂停这个方法好用
2.我说下 我理解的F12暂停方法的原理 运行程序 出现NAG F12暂停后 程序正好停在调用NAG的CALL那里 也就为我们找关键
提供了快速的途径 我们只要看看哪里的跳转可以跳过出现NAG的CALL 再分析下跳转的条件就可以了 ^_^
--------------------------------------------------------------------------------
【版权声明】: 本文原创于UNPACK技术论坛, 转载请注明作者并保持文章的完整, 谢谢! |
|