新手逆向练习与详解(9)(详解带有源文件)44CrackMe

我这里和大家声明一下 我这个是文件 是来自吾爱破解的creakme 160   导航链接  帖子里面有更厉害的思路  

本帖是编号为44的creakme 

因为最近一直在看数据结构的书 过几天打算玩玩linux 再看些书 毕竟现在我还是有点菜 等java学的可以了再去看安卓 现在还是先做一些windows 下的逆向 等有空了 就去做一些 linux的逆向还有安卓的逆向 如果有机会还会去试一试pwn 慢慢来  感觉还是有机会能学到知识的!然后我们现在开始看这个creamke

然后一开始的页面是这样的

随便输入后页面是这样的

下面的一行字变了 有没有 然后我们试着用od搜索字符串 发现

然后往下看见了我们想看到的字符 我们进去看看

 

到这里其实我们就差不多了  但是这里有个问题 就是为什么要取输入字符的前五位和输入字符前的一位 不知道为什么 当时我还以为我看错了 多调试了好几遍才出来

 注册机如下

#include<stdio.h>
#include<string>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<iostream>
using namespace std;
char p[]={0x70, 0x18, 0xEB, 0x66, 0xB2, 0x25, 0xEB, 0x62, 0xB2, 0x42, 0xEB, 0x5E, 0xB2, 0x0C, 0xEB, 0x5A,
          0xB2, 0x0D, 0xEB, 0x56, 0xB2, 0x06, 0xEB, 0x52, 0xB2, 0x36, 0xEB, 0x4E, 0xB2, 0x2B, 0xEB, 0x4A,
          0xB2, 0x17, 0xEB, 0x46, 0xB2, 0x2F, 0xEB, 0x42, 0xB2, 0x13, 0xEB, 0x3E, 0xB2, 0x82, 0xEB, 0x3A,
          0xB2, 0x9B, 0xEB, 0x36, 0xB2, 0x92, 0xEB, 0x32, 0xB2, 0x03, 0xEB, 0x2E, 0xB2, 0x63, 0xEB, 0x2A,
          0xB2, 0x21, 0xEB, 0x26, 0xB2, 0x42, 0xEB, 0x22, 0xB2, 0x5C, 0xEB, 0x1E, 0xB2, 0x29, 0xEB, 0x1A,
          0xB2, 0xC7, 0xEB, 0x16, 0xB2, 0x66, 0xEB, 0x12, 0xB2, 0x58, 0xEB, 0x0E, 0xB2, 0x0A, 0xEB, 0x0A,
          0xB2, 0x28, 0xEB, 0x06, 0xB2, 0x50, 0xEB, 0x02, 0xB2, 0x5D};
int main()
{
   unsigned char ans=0x5d;
    char temp=0;
    char name[300];
    printf("请输入您的名字!\n");
    scanf("%s",name);
    if(strlen(name)<6)
        printf("您的名字长度必须大于6!");
    for(int i=0;i<5;i++)
    {
        temp=name[i]-97;
        if(temp>0x19)
            ans+=0x5d;
        else
            ans+=p[temp*4+1];
    }
    printf("注册码是:  %d-%d",0+ans,strlen(name)*0x4a7e);
    return 0;
}

不知道为啥是无符号的char就行 但是char 好像会出错

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值