標 題:守財奴1.9註冊分析+序號產生器原始碼
發信人: lordor
時 間:2003/04/14 11:18am
詳細資訊:
軟體名稱:守財奴
整理日期:2003.4.3
最新版本:1.9
檔案大小:688KB
軟體授權:
使用平臺:Win9x/Me/NT/2000/XP
釋出公司:Home
Page
軟體簡介:
每天,當你疲於掙錢時,是否清楚自己到底掙了多少,花了多少,花在哪裡?如果你想消除這些疑問的話,那麼請使用本程式,並每天抽出5分鐘時間,擊幾下鍵盤,點幾下滑鼠,那麼即便是日積月累,你也能隨時掌握自己各方面的收入支出情況。本程式為免費軟體,可任意複製使用,絕對沒有任何功能與時間上的限制。但如果您覺得此軟體對您有用,並且資金允許的話,請向作者聯絡註冊。具體註冊方法請在幫助選單中的註冊中檢視。《安裝完成後請先閱讀幫助中的---使用手冊》
★支援Windows98/ME/NT/2000/XP ★資料安全,使用者按角色分配許可權★收支專案分類 ★詳細的收支記錄★強大的歷史收支記錄查詢
★每個使用者獨立的理財日記 ★計算個人所得稅 ★資料備份恢復功能 ★列印及匯出資料為Excel檔案功能。
工具:W32Dasm,ollyDBg1.09
軟體要求先輸入註冊資訊,再在重啟時進行比較。
註冊編號:lordor(各位假設為x1x2x3x4x5x6)
註冊密碼:654321(各位假設為y1y2y3y4y5y6)
一、用GetPrivateProfileStringA下斷,來到如下
00433112
. 68 902E4900 PUSH wbook.00492E90
; /lParam = 492E90
00433117
. 55 PUSH EBP
; |wParam
00433118 . 68 80010000 PUSH
180
; |Message = LB_ADDSTRING
0043311D
. 51 PUSH ECX
; |hWnd
0043311E . FF15 4C964700 CALL DWORD PTR DS:[<&USER32.SendMessageA>;
\SendMessageA
00433124 . 8B3D 9C924700 MOV EDI,DWORD PTR DS:[<&KERNEL32.GetPriv>;
KERNEL32.GetPrivateProfileStringA
0043312A . 68 4C114900
PUSH wbook.0049114C
; /IniFileName = ".\UserInfo.ini"
0043312F
. 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34]
; |
00433133 . 6A 0B
PUSH 0B
; |BufSize =
B (11.)
00433135 . 52 PUSH
EDX
; |ReturnBuffer
00433136 . 68
842E4900 PUSH wbook.00492E84
; |Default = "0000000000"
0043313B
. 68 942B4900 PUSH wbook.00492B94
; |Key = "RegCode"
00433140
. 68 882B4900 PUSH wbook.00492B88
; |Section = "RegUserInfo"
00433145
. C74424 54 080>MOV DWORD PTR SS:[ESP+54],8
; |
0043314D . 895C24 58
MOV DWORD PTR SS:[ESP+58],EBX ;
|
00433151 . 896C24 5C MOV DWORD PTR SS:[ESP+5C],EBP
; |
00433155 . C74424
60 060>MOV DWORD PTR SS:[ESP+60],6
; |
0043315D . 895C24 64 MOV DWORD PTR
SS:[ESP+64],EBX ; |
00433161
. C74424 68 030>MOV DWORD PTR SS:[ESP+68],3
; |
00433169 . FFD7
CALL EDI
; \GetPrivateProfileStringA
0043316B
. 68 4C114900 PUSH wbook.0049114C
; /IniFileName = ".\UserInfo.ini"
00433170
. 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C]
; |
00433174 . 6A 07
PUSH 7
; |BufSize = 7
00433176
. 50 PUSH EAX
; |ReturnBuffer
00433177 . 68 7C2E4900
PUSH wbook.00492E7C
; |Default = "000000"
0043317C . 68
802B4900 PUSH wbook.00492B80
; |Key = "RegPass"
00433181
. 68 882B4900 PUSH wbook.00492B88
; |Section = "RegUserInfo"
00433186
. FFD7 CALL EDI
; \GetPrivateProfileStringA
00433188 . 33C0
XOR EAX,EAX
0043318A . 8D4C24 6C
LEA ECX,DWORD PTR SS:[ESP+6C]
0043318E > 0FBE5404 30
MOVSX EDX,BYTE PTR SS:[ESP+EAX+30] ; 註冊編號lordor依次入edx
00433193
. 83EA 30 SUB EDX,30
;
edx-30
00433196 . 40
INC EAX
; eax加1X
00433197
. 8911 MOV DWORD PTR DS:[ECX],EDX
; edx儲存在stack中,為12fb80],EDX
00433199
. 83C1 04 ADD ECX,4
;
ecx加4X
0043319C . 83F8 06 CMP EAX,6
; eax是否為66
0043319F .^ 7C ED
JL SHORT wbook.0043318E
; 如eax小於6則繼續迴圈k.004331
004331A1
. 33C0 XOR EAX,EAX
;
eax清空X,
004331A3 . 8D4C24 54 LEA ECX,DWORD
PTR SS:[ESP+54] ; 作好儲存準備,DWORD
004331A7
> 0FBE5404 28 MOVSX EDX,BYTE PTR SS:[ESP+EAX+28]
; 註冊密碼依次入edx
004331AC . 83EA 30
SUB EDX,30
; edx減30,
004331AF
. 40 INC EAX
; eax加1X
004331B0 . 8911
MOV DWORD PTR DS:[ECX],EDX
; 把edx值入stack,此為12fb68],EDX
004331B2
. 83C1 04 ADD ECX,4
;
ecx加4,其實指向下stack處
004331B5 . 83F8 06
CMP EAX,6
; eax是否為66
004331B8
.^ 7C ED JL SHORT wbook.004331A7
004331BA
. 899E 8C1E0000 MOV DWORD PTR DS:[ESI+1E8C],EBX
004331C0 . 33C9
XOR ECX,ECX
004331C2 > 8B440C
6C MOV EAX,DWORD PTR SS:[ESP+ECX+6C] ;
加工後的密碼編號依次入eax,此為3c=6c-30ECX+6C]
004331C6 . 8B540C 3C
MOV EDX,DWORD PTR SS:[ESP+ECX+3C] ; 8,1,0,6,1,3依次入edxSS:[ESP+
004331CA
. 03C2 ADD EAX,EDX
; eax與edx相加運算
004331CC . 83F8 0A
CMP EAX,0A
; 判斷eax與0a是否相等
004331CF
. 72 03 JB SHORT wbook.004331D4
; eax小於0a,則跳,否則減0a4331D4
004331D1
. 83E8 0A SUB EAX,0A
;
如果eax不等0a,則eax減0a
004331D4 > 3B440C 54
CMP EAX,DWORD PTR SS:[ESP+ECX+54] ; eax再與轉換為十進位制的註冊密碼相比,此為6SP+ECX+54]
004331D8
. 74 06 JE SHORT wbook.004331E0
; 如相等則繼續比較,否則設定註冊不成功標誌
004331DA
. 89AE 8C1E0000 MOV DWORD PTR DS:[ESI+1E8C],EBP
004331E0
> 83C1 04 ADD ECX,4
;
ecx加4
004331E3 . 83F9 18 CMP ECX,18
; ecx是否等18,判斷是否比較完,18H十進位制為24,即6位
004331E6 .^ 7C DA JL SHORT
wbook.004331C2
004331E8 . 39AE 8C1E0000 CMP DWORD PTR DS:[ESI+1E8C],EBP
004331EE
. 75 30 JNZ SHORT wbook.00433220
004331F0
. 68 702E4900 PUSH wbook.00492E70
004331F5 . 68
C3040000 PUSH 4C3
004331FA . 8BCE
MOV ECX,ESI
004331FC . E8 D8320200 CALL wbook.004564D9
二、總結演算法
據以上分析,相應等式如下:
第一位:(8+x1)mode10=y1
第二位:(1+x2)mode10=y2
第三位:(0+x3)mode10=y3
第四位:(6+x4)mode10=y4
第五位:(1+x5)mode10=y5
第六位:(3+x6)mode10=y6
總結如下:
註冊編號:844718
註冊密碼:654321
註冊資訊儲存在當前目錄下UserInfo.inf檔案中
[RegUserInfo]
RegCode=844718
RegPass=654321
三、序號產生器TC2.0:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
main()
{
int
i,j;
int name[20];
int
sn[10];
int code[6]={8,1,0,6,1,3};
printf("**************************************************************\n");
printf("*
守財奴v1.9 Keygen *\n");
printf("* Made by lordor(lordor@163.com)
*\n");
printf("* 2003-4-13 *\n");
printf("**************************************************************\n");
printf("please
input your number,must be int number:\n");
for(i=0;i<6;i++)
{
printf("the
%d number:\n",i+1);
scanf("%d",&name[i]);
}
printf("\nYour
register code:");
for(j=0;j<6;j++)
{
sn[j]=code[j]+name[j];
if(sn[j]>10)
sn[j]=sn[j]-10;
}
for
(j=0;j<6;j++)
{
printf("%d",sn[j]);
}
printf("\n\n\n");
printf("Enjoy
it!\n\nBye!\n");
}