160个练手CrackMe-031

1、无壳,VB

2、VB Decompiler
慢慢追。
还原C流程:

int main(){
    int i, t;
    char serial[20] = {0};
    char res[20] = {"VeiajeEjbavwij"};
    char tmp[20] = {0};
    char key[20] = {"20002000200020002"};

    scanf("%s", serial);
    t = serial[3];
    for(i=0; i<strlen(serial); i++){
        tmp1[i] = t ^ serial[i];
    } 

    for(i=0; i<strlen(serial); i++){
        tmp2[i] = key[i] ^ tmp1[i];
    }

//  printf("%s\n", tmp2);

    if(strcmp(tmp2, res) == 0)
        "Yes!"
    else
        "NO!"

    return 0;
}

3、逆向
①得到tmp2

>>> [ord(res[i])^ord(key[i]) for i in range(len(res))]
[100, 85, 89, 81, 88, 85, 117, 90, 80, 81, 70, 71, 91, 90]

②爆破还原Serial

>>> c = '0123456789abcdefghijklmn...'
>>> for i in c:
    for j in tmp2:
        print(chr(j^ord(i)), end='')
    print('\n', end='')


TeiaheEj`avwkj
Udh`idDka`wvjk
VgkcjgGhbctuih
WfjbkfFicbuthi
PamelaAnderson
Q`ldm`@oedsrno
RcogncClfgpqml
SbnfobBmgfqplm
\mai`mMbhi~cb
]l`halLcih~bc
48094;10'&:;
7;3:7823$%98
6:2;6932%$89
......

Serial: PamelaAnderson

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值