U盘监控器破解过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

U盘监控器破解思路
1、运行优盘监控器,点击注册
发现弹出网页要求注册网址为
/soft/29922.html
2、OD载入
由于运行时看到网址,则内存中必有一个/soft/29922.html字符串,尝试搜索该字符串(操作步骤为右击->搜索->搜索所有参考字符串),果然搜到
而且还有意外发现ASDA-GDFWT-FHRR-BJNR ,一个类似注册码的字符串。

输入到注册码框,点击确定
发现注册成功
看来注册码是固定的,不管他,继续。

双击搜索到的字符串/soft/29922.html一行,跳转到访问该字符串的代码处开始看
开来是作为一函数的参数
F7步入看看,发现是一系列跳跳跳,然后执行ShellExcuteA弹出网页后
继续F7,执行几步后发现弹出输入框了,输入注册码,点击确定,继续F7到函数返回
发现刚刚输入的错误注册码被压入栈中
再继续F7
发现有一句test eax,eax , 这句应该是判断上个call的返回值,大概是用来判断用户输入是否为空的,不管他,继续F7
又发现一出非常可疑的call
观察DWORD PTR SS:[EBP04],发现是指向之前输入的错误注册码的指针
(另一个是注册码,但是不管他继续)
看来是要比较了
F7步入看看
一大段的代码,大体意思是edx 和ecx 分别指向用户输入和真实注册码
判断edx 和ecx是否为零,如果有为0 的,则call返回返回值不为0
F7过去,看下面的代码
这段代码就是用来判断用户输入码和真实注册码是否相同
可以看到,相同则返回0
不同则返回非0
试着将shl eax,1 inc eax改为xor eax,eax nop 保存然后执行,出现异常,看来此处的代码不能改,没关系不管它,继续F7 , call 返回。

发现开始对call 的返回值做比较,下面又有一个
根据下面的指令基本可以看出,代码对call 的返回值与0 比较
比较结果,并设置标志位。

然后eax 清0 ,用sete al 语句
将比较结果放入al 中,并将eax作为call的参数,由此可见,这个call 应该就是用来判断注册码是否是正确的并据此做出相应的动作。

为了验证判断,就来改一下试试
之前已经分析出正确则返回0 ,即eax等于0 ,则sete al 执行后eax 应该不为0 ,才能成功注册,那么就将sete al 改为xor eax,eax inc eax , 保存运行
随便输入注册码
点击确定
注册成功,还有个纠结的地方是前面讲到的弹出网页,现在来把它抹掉
还是搜字符串找到先前的那个网址字串双击跳转
然后将这一连串的push 和call 全部用nop 替换掉,保存运行,OK了。

相关文档
最新文档