首页
社区
课程
招聘
使用OllyDbg从零开始Cracking 第十六,十七,十八章-序列号生成算法分析-Part1,Part2,Part3
发表于: 2014-6-3 00:03 43436

使用OllyDbg从零开始Cracking 第十六,十七,十八章-序列号生成算法分析-Part1,Part2,Part3

2014-6-3 00:03
43436
收藏
免费 3
支持
分享
最新回复 (117)
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
76
一直追随楼主的脚步!
2014-9-1 14:51
0
雪    币: 15793
活跃值: (3987)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
77
谢谢,学习一下
2014-9-3 12:07
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
78
非常感谢楼主
2014-9-4 13:58
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
79
谢谢楼主...
2014-9-5 10:53
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
80
"好了,接下来我们分析Canasta 5.0这个CrackMe。"
不要意思,楼主这个CrackMe没有找到呢?
2014-9-9 21:47
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
81
mark一下。。。
2014-9-10 14:40
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
82
楼主辛苦了!16章教程的第一个程序那里说两种方案求序列号,我怎么觉得这两种方案说的是一回事啊!都是对eax反向操作啊!
2014-9-19 22:40
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
83
楼主辛苦了!18章后面有点语焉不详啊,好像有些操作没有说出来,不过我还是大概按教程找到比较序列号的地方了!
2014-9-21 20:51
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
84
就是cansetup,那个要安装的。
2014-9-21 20:52
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
85
谢谢楼主
2014-9-21 21:39
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
来顶贴了,已经跟到这了,发现自己还是临时会员感到深深的自责
2014-9-22 12:41
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
87
我想请问楼主,病毒分析报告怎么写呢?病毒分析流程是怎么样的呢?怎么开始分析一个病毒?要分析成什么样子?谢谢
2014-9-22 15:37
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
88
你可以参考一下这篇文章...
http://www.freebuf.com/news/special/41797.html

坛子里面也有很多样本分析报告,你可以参考一下...
2014-9-22 16:45
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
90
呜呜,跟着作者一步步来似乎一切顺理成章,自己来就有些不知所措了。

啊,自己看反汇编的程序看不出来在干什么T T
2014-11-16 21:45
0
雪    币: 55
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
91
虽然od看着眼花,但是自己把程序crack了成就感满满啊!!!

感谢楼主!
2014-12-3 22:36
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
92
支持楼主!
2014-12-22 09:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
93
/*
功能:CrueHead'a的CrackMe的算号器。
说明:代码未优化,目前可计算出5位帐号的密码。且帐号必须为英文字母
比如账号为:Crack,则密码为:17704
作者:Crack018
时间: 2014.12.31
环境:Visual 2008
*/

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

int main(void)
{         
        char a[5];
        char *p = a;
        char b[5];

        int i;
        int bNum = 0;
        int aNum = 0;

        printf("请输入5位英文字母账号:\n");

        for (i=0; i<5; i++)
        {
                scanf("%c", p+i);
        }

        for (i=0; i<5; i++)
        {
                if (a[i] >=0x61)
                {                       
                        a[i] = a[i] - 0x20;
                        aNum = aNum + a[i];
                }
        }
        aNum = aNum ^ 0x5678;

        printf("密码为:\n");

        bNum = aNum ^ 0x1234;//0x4528

        itoa(bNum, b, 10);

        printf("%s", b);

        getchar();
        getchar();
        return 0;
}
2015-1-1 00:37
0
雪    币: 67
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
94
支持分享!!
2015-1-1 00:51
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
95
学习OD非常好的资料,谢谢楼主分享。
2015-1-1 01:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
96
/*
功能:canasta的算号器。
说明:代码未优化,目前可计算出8位帐号的密码。
比如账号为:Crack018,则密码为:237593
作者:Crack018
时间: 2015.1.1
环境:Visual 2008
*/

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

int main(void)
{         
        int Serial[21] = {0xD9, 0x63, 0x58, 0x22,
                0x3E, 0x93, 0xF0, 0x08,
                0x34, 0x62, 0x1B, 0xBF,
                0xD7, 0xB9, 0x6F, 0x4A,
                0x5A, 0xB2, 0x84, 0x24,
                0x11};        /*key表*/

        char name[8];                                /*帐号*/
        char *pName = name;               
        char keymiddle[6];                        /*需倒转的密码*/
        char key[6];                                /*密码*/

        int remain = 0;                                /*余数*/
        int result = 0;                                /*商*/

        int i;                                                /*循环变量*/
        int j;                                                /*循环变量*/
        int circle_i;                                /*循环变量中间量*/
        int sum = 0;                                /*算法中,求的总数*/

        printf("请输入8位账号:\n");

        for (i=0; i<8; i++)
        {
                scanf("%c", pName+i);
        }

        for(i=0; i<8; i++)
        {
                sum = sum + (int)name[i] * (i + 1)* Serial[i];
        }

        i = 0;
        do
        {
                result                        = sum / 0x0A;
                remain                        = sum % 0x0A;
                remain                        = remain + 0x30;        /*转换为字符*/
                keymiddle[i]        = (char)remain;
                i++;
                sum  = result;
        } while (sum != 0);
        circle_i = i;

        printf("\n");
        printf("注册码key为:\n");
        for(i=circle_i-1; i>=0; i--)
        {
                j=0;
                key[j] = keymiddle[i];
                printf("%c", key[j]);
                j++;   
        }

        getchar();
        getchar();
        return 0;
}
2015-1-1 18:13
0
雪    币: 101
活跃值: (144)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
97
crackme_4stz.7z 报木马。。刚下载就被删
2015-1-1 18:48
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
98
加壳程序报毒正常... 建议建个虚拟机做实验
2015-1-1 18:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
99
/*
功能:CrueHead'a的CrackMe2.7的算号器。
说明:key为:RIDERSOFTHESTORM。从左边从头开始,随便取多少位都可以
作者:Crack018
时间: 2015.1.1
环境:Visual 2008
*/

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

int main(void)
{         
        int Serial1[16] = {0x4D, 0x65, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x5F,
                                    0x69, 0x6E, 0x5F, 0x62, 0x79, 0x74, 0x65, 0x73};                                        /*key表*/
        int Serial2[16] = {0x1F, 0x2C, 0x37, 0x36, 0x3B, 0x3D, 0x28, 0x19,
                                    0x3D, 0x26, 0x1A, 0x31, 0x2D, 0x3B, 0x37, 0x3E};                                        /*key表*/
        int nNumber                = 0;
        int        i                        = 0;

        char key[16]                = {0};

        printf("key为:\n");

        for (i=0; i<16; i++)
        {
                key[i] = Serial1[i] ^ Serial2[i];
                printf("%c", key[i]);
        }

        getchar();
        getchar();
        return 0;
}
2015-1-1 19:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
100
/*
功能:crackme_4stz的算号器。
说明:代码未优化,可以算出8位帐号name的密码key;name:Crack018;key:197253;
作者:Crack018
时间: 2015.1.2
环境:Visual 2008
----------------------算法核心代码----------------------------
004580FF  |.  60            PUSHAD
00458100  |.  8B75 FC       MOV ESI,DWORD PTR SS:[EBP-4]
00458103  |.  8B7D F8       MOV EDI,DWORD PTR SS:[EBP-8]
00458106  |.  31C9          XOR ECX,ECX
00458108  |.  31DB          XOR EBX,EBX
0045810A  |>  0FBE040F      MOVSX EAX,BYTE PTR DS:[EDI+ECX]
0045810E  |.  41            INC ECX
0045810F  |.  31C8          XOR EAX,ECX
00458111  |.  01C3          ADD EBX,EAX
00458113  |.  3B4D FC       CMP ECX,DWORD PTR SS:[EBP-4]
00458116  |.^ 75 F2         JNZ SHORT crackme_.0045810A
00458118  |.  C1C0 0C       ROL EAX,0C
0045811B  |.  01D8          ADD EAX,EBX
0045811D  |.  8945 F4       MOV DWORD PTR SS:[EBP-C],EAX
00458120  |.  61            POPAD
----------------------------------------------------------
*/

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

int main(void)
{
        char name[8];
        char* pName = name;
        int i;
        int aNume        =        0;
        int bNume        =        0;

        printf("请输入8位帐号:\n");

        for (i=0; i<8; i++)
        {
                scanf("%c", pName+i);
        }

        for(i=0; i<8; i++)
        {
                bNume = name[i]^(i+1);
                aNume += bNume;
        }

        bNume  = (bNume >> (32-0xC)) | (bNume << 0xC);

        aNume += bNume;

        printf("注册key为:%d\n", aNume);
       
        getchar();
        getchar();
        return 0;
}
2015-1-2 16:14
0
游客
登录 | 注册 方可回帖
返回
//