160个Crackme之003 Afkayas.2

1.概述

作者:Afkayas
难度:★
保护方式:Nag,Name/Serial

运行程序,有几秒钟的弹框,过几秒自动消失
在这里插入图片描述

出现主窗口
在这里插入图片描述

随意输入用户名和序列号,点击ok,弹出对话框

在这里插入图片描述

2.算法

OD加载程序,用中文搜索引擎里的智能搜索搜到字符串"You Get Wrong",跳转到代码处,向上找到函数的起始处,下断点,运行程序后,在主窗口中输入用户名和序列号点ok,程序被成功断下。
在这里插入图片描述

第一次算法:0x15b38*用户名长度+用户名首字母ASCII码,最后转为10进制
在这里插入图片描述

第二次算法:第一次算出的值+(10.0/5)
在这里插入图片描述

第三次算法:第二次算出的值*3-2
在这里插入图片描述

第四次算法:第三次算出的值+15

在这里插入图片描述
我们以tutucoo作为用户名,计算出的序列号是:
1.0x15b380x8+0x74=711220
2.711220+2=711222
3.711222
3-2=2133664
4.2133664+15=2133679
在这里插入图片描述

再以obama作为用户名,计算出的序列号是:
1.0x15b380x6+0x6f=444551
2.444551+2=444553
3.444553
3-2=1333657
4.1333657+15=1333672

3.去Nag窗口

3.1 4C法

用OD加载程序,在入口点处有一个push
在这里插入图片描述

在命令行中计算? 4067d4+4c,得出0x406820,在数据窗口中跳转到0x406820处,存储的是0x406868
在这里插入图片描述
跳转到0x406868处
在这里插入图片描述

红箭头处是窗体的顺序,数字越大,顺序越靠后,所以将数字小的改成大的,大的改成小的,窗口启动的顺序就改变了。
右键->复制到可执行文件,将文件另存,打这个patch过的文件,Nag弹窗不见了。

3.2 SetTimer断点法

Nag窗口会停留几秒钟,可以猜测调用了SetTimer,所以在OD中给SetTimer打断点,运行断下来,观察堆栈。
在这里插入图片描述
可以看到Timeout=7000ms,说明Nag窗口停留的时间是7秒,我们只要将这个数字修改成0就可以去Nag窗口了,但是代码此时在系统领空,无法直接修改,不过我们可以借助WinHex工具来修改二进制。
记住Timeout处的值是0x581b00
在这里插入图片描述
在WinHex中搜索16进制数0x581b00,将它改为0x010000,改为0x000000窗口会一直存在,修改完后保存,重新打开程序Nag窗口已经不见了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值