查看單個文章
舊 2006-08-11, 02:49 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 一簡單crackme的簡單分析

一簡單crackme的簡單分析

在一個論壇上看到的,閒來無事就順手玩了玩。

跟蹤知註冊碼需為8位,緊接著到關鍵部分:

00445112 > \BA 16FD2D01 mov edx, 12DFD16
00445117 . 8BC6 mov eax, esi
00445119 . 85C0 test eax, eax
0044511B . 7E 1B jle short 00445138
0044511D . BE 01000000 mov esi, 1
00445122 > 8B4D FC mov ecx, [ebp-4]
00445125 . 8A4C31 FF mov cl, [ecx+esi-1] //取用戶名的一位
00445129 . 80F1 CA xor cl, 0CA //與0ca異或
0044512C . 81E1 FF000000 and ecx, 0FF //ecx前三位情零
00445132 . 03D1 add edx, ecx //累加
00445134 . 46 inc esi
00445135 . 48 dec eax
00445136 .^ 75 EA jnz short 00445122
00445138 > 81F2 26117919 xor edx, 19840808 //累加結果與19840808異或
0044513E . 3B55 F4 cmp edx, [ebp-C] //與註冊碼比較


算法總結:去用戶名每位與0ca疑惑後與12df016累加,結果與19840808異或.

註冊機源碼:
#include "stdio.h"
#include "math.h"
#include "conio.h"

void main()
{
char na[80];
int na_len;
int i=0;
signed char di;
unsigned long cs1=0x12DFD16;
unsigned long cs2=0x19840808;
unsigned long cs3=0x0CA ;
char cs4=11;



printf("please input your name:");
gets(na);
na_len=strlen(na);


for(i=0;i<na_len;i++)
{
na=na^cs3;
cs1+=na&0x0ff;
}


cs2=cs1^cs2;
printf("\nYour serial is %lx",cs2);
printf("\n\n\nMade By eLance");
getch();
}
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
有 2 位會員向 psac 送花:
achigo (2008-06-18),羅迪 (2013-07-11)
感謝您發表一篇好文章