探索地球的奥秘

地质录井≠地质

IDA的F5功能真的好强大!【Z】

http://hi.baidu.com/diype/blog/item/43e6ee25ac19ff22d4074298.html

IDA的F5功能真的好强大!
2009-07-20 20:07

今天在pediy看到一贴子,自已用IDA F5试了一下,真的好强大。

IDA载入目标程序后,按F5键,得到伪代码,置于VC6编译器中,添加相关头文件,稍作修改,编译得到注册机。

下面是IDA 的F5键得到的:

int __cdecl main(int argc, const char **argv, const char *envp)

{ signed int v4;

// [sp+1Ch] [bp-3Ch]@1

char v5;

// [sp+30h] [bp-28h]@1

unsigned int v6;

// [sp+2Ch] [bp-2Ch]@1

unsigned int v7;

// [sp+28h] [bp-30h]@1

v4 = 16;

__main();

printf("Enter your login:");

gets(&v5);

printf("Enter password:");

scanf("%ld", &v6);

v7 = 32 * strlen(&v5) + 2226449;

if ( v6 == v7 )

printf("Good job!, now make a keygen\n");

else

printf("Keep trying you'l get it");

sub_401980(10);

return 0;

}

然后我们制作注册机:

//------------------------------------
//IDA不会加上头文件的,呵呵,我们加上。
//然后把没有用的两句注释掉。就可编译通过,与原crackme一样的。
#include<stdio.h>
#include<string.h>
//------------------------------------
int __cdecl main(int argc, const char **argv, const char *envp)
{
signed int v4; // [sp+1Ch] [bp-3Ch]@1
char v5; // [sp+30h] [bp-28h]@1
unsigned int v6; // [sp+2Ch] [bp-2Ch]@1
unsigned int v7; // [sp+28h] [bp-30h]@1

v4 = 16;
// __main();
printf("Enter your login:");
gets(&v5);
printf("Enter password:");
scanf("%ld", &v6);
v7 = 32 * strlen(&v5) + 2226449;
//-------------------------------------
//加上这一句,让我们看看正确的注册码:
printf("the sn is: %d\n",v7);
//-------------------------------------
if ( v6 == v7 )
    printf("Good job!, now make a keygen\n");
else
    printf("Keep trying you'l get it");
// sub_401980(10);
return 0;
}
//输入用户名:diype
//我们会输出序列号:2226609
//注册码只与注册名的位数有关,晕,这也叫crackme ??
//IDA的F5功能真的好强大!!

posted on 2009-10-08 21:09  acheng99  阅读(18567)  评论(1编辑  收藏  举报

导航