160个creakme之009

前言

成功第二天继续做这个,一会把写的python项目也发博客吧,这样一天发两个博客。继续努力。

正文

几种方法的开头都一样,就一起说了。

首先,拖进Exeinfo查查,没壳,用VB写的。

在这里插入图片描述

直接拖进OD,搜一下错误字符串

在这里插入图片描述

在这里插入图片描述

直接来到程序处。就这里关键。从这里方法开始分支。

暴力1

和上一个一样,往上找找,有两个跳转,第一个跳转跳过第二个跳转,而第二个无条件跳转会跳过错误信息。

在这里插入图片描述

所以我们把上面那个跳转改了,让它没法跳过这个跳转,错误信息自然跳过。OK

在这里插入图片描述

在这里插入图片描述

暴力2

这次不nop掉第一个跳转,我们在往上看,这个条件肯定是由某个函数出来的结果,

在这里插入图片描述

可以确定是这个函数的结果,在这下个断点,重新运行。第二次跟进这个函数。

F8单步,遇到跳转不管,遇到函数我们跟进,渐渐的,我们能在右边的寄存器窗口看到我们输入的key(我这里输入的1111111),他下面还有一个字符串,有理由相信,应该是用来比较的字符串。

在这里插入图片描述

重新运行,将key值改成这个,成了。

在这里插入图片描述

分析算法

由上一步我们可以知道,他会将我们输入的key与一个正确的字符串相比较,那么这个字符串是固定的吗,我们换个name试试。
在这里插入图片描述在这里插入图片描述

可以看到,name换了后,key值不一样了,所以我们猜测,这个key是由name动态生成的。

从刚才那个比较函数往上找,可以发现有个地方取了name,从这里开始,对name进行了处理,
再往下找,发现一个循环,在循环里看,有三在这里插入图片描述个函数比较关键,第一个函数,从name里取一个字符,第二个将字符转化为ASCII码,第三个函数将转化出来的ASCII码加起来,整个循环一起实现了将name的每个字母取出相加的功能。

在这里插入图片描述

在这里插入图片描述
跳出循环以后,该函数将上面的和与0x499623D2相乘。

在这里插入图片描述

在这里插入图片描述

该函数,将上面乘积的第4个字符换成“-”,

在这里插入图片描述
该函数,将乘积的第九个字符换成“-”,

以上就是全部的算法。

注册机

继续用python写,也不要图形界面了(我好懒)

s='zxzzxy'
m=0
for i in s:
	m+=ord(i)
m=m*0x499602D2
str_m=list(str(m))

str_m[3]='-'
str_m[8]='-'
str_m="".join(str_m)
print(str_m)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值