shark恒破解视频的笔记

shark恒破解笔记
第1期-03 壳内寻找注册码
1、F9先运行程序 
2、Ctrl+G输入401000到解码段,如果出现db ** 
鼠标右键->分析->从模块中删除分析 在这可以搜索字符串
并在需要的地方下断点a,b,c
3、下个GetStartupInfoA断点,重新运行,让程序在解码后未真正"运行"前断下来
4、观察断点窗口,前面下的断点a,b,c如果显示是add byte ******表示还
没解码完成。继续F9运行程序,直到显示正常汇编程序代码,
删除或禁用GetStartupInfoA断点,因为是有壳的程序,这时下的a,b,c断点
是禁用的,我们右键激活它,F9运行,程序会断在a,b,c断点处断下。



第1期-04 绕过自效验
ESP定律:F8单步,寄存器窗口ESP是红的,在ESP右键Hy Break[ESP],单步运行
对照OEP表,找到入口,鼠标右键OllyDump把入口点的地址的的修正为复制下来
打开LoardPe,找到对应运行程序,右键修正镜像大小,完整转存
打开ImportREC,将复制的地址粘贴到OEP处,自动查找IAT,获取输入表,
显示无效函数,如果有就右键删除或剪切(剪切就是删除)它们,没有就点修复转存文件 
选择刚刚LoardPe存的文件
后面带_的就是REC修复完的。
导入OD下GetFileSize断点,F9运行,断下来后,在堆栈窗口中右键,反汇编窗口跟随
,程序来到调用这个GetFileSize函数的地方,会有一个地方在比较EAX中值的CMP,
这个EAX存的是文件的大小,可以修改为脱壳文件的大小也可以处理程序退出跳转
下面也有一个EBP要修改,搞定。



第1期-05 EAX决定胜负
关键CALL内直接返回一个1,mov eax,1 retn
test al,al就不跳了






第1期-09 API断点GetPrivateProfileStringA
这是INI文件即配置文件的断点,下好断点,程序停在下的断点处,
Alt+F9回到程序领空,回到加载配置文件后。往后F8找到注册码。



第1期-10 万能断点解决重启验证
运行程序,右键查看,点击模块user32,进入后右键查找,二进制字符串
输入F3 A5 8B C8 83 E1 03 F3 A4 E8,查找并下断
先关闭断点,输入注册码,激活断点,按确定,找到关键CALL,修改或找到注册码就行




第1期-11 VB之rtcMsgBox
下个rtcMsgBox断点,前面学的EAX返回1是没用的,且MessageBox是VC和易语言的
对VB不管用。


第1期-12 摆脱NAG
F12暂停法
因为有NAG窗口,就是所谓的广告窗口,运行程序弹出NAG,返回OD按暂停键(F12)
因为注入了代码,可能会有提示,点否,我们打开选项,调试设置,安全,取消允许在已
获取的WinProc地址注入代码
点工具栏的K,来到堆栈窗口找到显示NAG的MessageBox的函数,右键显示调用,
来到调用MessageBox函数内下个断点。F9运行,程序断下来了,Alt+F9,找到调用NAG的
地方修改就行了。




第1期-14 BC++假自效验
BC++脱壳后会打不开,我们要手动修复IAT
在OD中打开脱好的dump_文件,进入第一个CALL
往上找到第一个jmp即段首, 就是在retn下面的那个
选中段首,即第一行,右键,数据窗口跟随,内存地址
在数据窗口中右键,长型,地址,减去段地址(在工具栏M中的pe前的地址)得到EVA
打开LoardPE重新修复OEP,自动查找,修复EVA,限定EVA大小1000,获取输入表,显示
无效函数,右键,删除指针,修复转存文件dump_。




第1期-15 DeDe的用法
BC++和Delphi的按钮事件是一样的,可以用DeDark载入,简化破解
载入DeDe,NO,NO,过程,找到相应的按钮,双击,如果是想要的,就复制它的
地址在OD中,Ctrl+G,粘贴下断。破解搞定。




第1期-19 Push窗体绕过登录框
程序运行起来,来到401000处,查找二进制字符串FF25,找到窗口标识,向下查找,Cltr+F
输入push 10001
新找到的窗口标识替换掉程序运行时打开的窗口标识,保存出来,
小心暗桩,只限易语言



第1期-22 VB的通用技巧
用脚本下按钮事件的断点,输入假码,点注册。
断下来
找到CMP **,0xFFFF
VB程序主要用于判断数值,一般影响关键CALL。
要注意它。
选择复制CMP **,0xFFFF,右键查找,所有命令,
粘贴,空白处右键,在每个命令上设置断点
找到关键的地方修改就行了





第1期-23 所有模块间的调用
VB程序退出断点
汇编窗口右键查找,所有模块间的调用,_vbaEnd
把这些函数全部断下来,右键,在每个调用到_vbaEnd上设置断点
F9运行。取消程序自退出。
VB是Unicode的字符集,中文搜索,找到批处理文件名
数据窗口跟随,关机指定全部填0,搞定。也可以跳过批文件生成

























































































猜你喜欢

转载自blog.csdn.net/duling2/article/details/83189245