160cracked-2

name/serial系列
输入test/test1234
确定 弹出错误对话框
暂停 看栈回溯 找到用户态代码

确定该函数 仔细观察 找到有关我们输入数据的部分

0040240F   .  8B45 E4       mov eax,dword ptr ss:[ebp-0x1C]          ;  unicode test
00402412   .  50            push eax                                 ; /String = "日??琎"
00402413   .  8B1A          mov ebx,dword ptr ds:[edx]               ; |
00402415   .  FF15 E4404000 call dword ptr ds:[<&MSVBVM50.__vbaLenBs>; \__vbaLenBstr
0040241B   .  8BF8          mov edi,eax                              ;  eax=4 len
0040241D   .  8B4D E8       mov ecx,dword ptr ss:[ebp-0x18]          ;  test出现 不过是unicode
00402420   .  69FF FB7C0100 imul edi,edi,0x17CFB                     ;  0x17cfb ;edi=5f3ec
00402426   .  51            push ecx                                 ; /String = NULL
00402427   .  0F80 91020000 jo Afkayas_.004026BE                     ; |
0040242D   .  FF15 F8404000 call dword ptr ds:[<&MSVBVM50.#516>]     ; \rtcAnsiValueBstr
00402433   .  0FBFD0        movsx edx,ax
00402436   .  03FA          add edi,edx                              ;  edi=5f460 正确验证码出现

注册机:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

char * gen(char *input){
    if(strlen(input)<=0) return "error";

    char *res;
    res=(char *)malloc(100);
    sprintf(res,"AKA-%d",strlen(input) *0x17cfb + *input);
    return res;
}

int main()
{   
    printf("%s-->%s \n","test",gen("test"));
    //test-->AKA-390240
    return 0;
}

同1差不多。不过自己的看汇编的能力 和 分析作者的思路的能力 要加强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值