007D2395 |. 4E |DEC ESI
007D2396 |.^ 75 A7 \JNZ SHORT SysMech6.007D233F
Úi thèn này mịa hình như 2 thằng này chơi copy bài nhau hay sao á Y
bon cách mã hóa
hehhe Nhìn kĩ xem Có khác gì không ???
Có
Code:
007D2359 |. 8D143B |LEA EDX, DWORD PTR DS:[EBX+EDI]
007D237B |. 8D143B |LEA EDX, DWORD PTR DS:[EBX+EDI]
Code thì giống bon Nhưng EDI ĐƯỢC GÁN GIÁ TRỊ KHỞI TẠO KHÁC
HOÀN TOÀN (Với Std lúc này là 26h giờ Pro là 10h) !!!!!
Mấu chốt đây hén Function quan trọng Encrypt Name tuy same về thuật toán
nhưng rõ ràng là đối số EDI đã changed.
Tuy nhiên bạn có nhớ là Function này ta trước đây khi code đã linh động với đối số
EDX (EDX khi vào trong Function Keygen này sẽ gán vào cho EDI). Nên giờ
hoàn toàn có thể tận dụng lại được Function EncryptName cũ của ta chỉ cần
Update lại EDX = 10h
Code:
Case enumIoloProductions.SM6Pro
Return KeygenBaseEx(in_strName, &H1A,
enumIoloProductions.SM6Pro, "P6")
Case enumIoloProductions.SM6Std
Return KeygenBaseEx(in_strName, &H1A,
enumIoloProductions.SM6Std, "S6")
Những khúc phía sau tương tự Lưu ý Nhớ là trong Case này thì Prefix là "S6"
nhá
*******************************************
Rồi Giờ thì mọi người tổng kết lại xem
Qua 2 Productions: System Mechanic 6 Std & Pro. (bạn từ tìm thêm cho các dòng
sản phẩm còn lại hén)
Ta có thể thấy các dòng sản phẩm này đều sử dụng hoàn toàn y chang nhau về
thuật toán cũng như quá trình xử lý Serials Điểm tạo nên khác biệt chính là giá trị
EDI trong quá trình mã hóa Name & Prefix
Do đó ta chỉ cần code các Function thành 1 bộ khung chuẩn sau đó chỉ cần truyền
Paramaters tương ứng.
Tuy nhiên với System Mechanic 6 này có 1 số thay đổi nhỏ rất nhỏ (nhưng cũng
làm thay đổi Serials) so với ver 4 & 5.
Bạn nào tìm ra thì có thêm 20 Points nữa.
Tổng kết Promotion
1: 20 points cho ai tìm ra các bugs trong Visual Basic .NET code kèm theo trong
Tut.
2. 20 points cho ai tìm ra sự khác biệt giữa System Mechanic 6 & 5 - 4
3. 30 points cho ai liệt kê hết thông số EDI quá trình EncryptName của Iolo's
Productions (với System Mechanic thì yêu cầu từ ver 4 - > 6)
5. 50 points cho ai code hoàn chỉnh ra 1 bộ Keygen Bundled.
6 hahaha Thằng Search And Recover 3 này nó không hiểu do vô tình hay cố ý
mà có 1 sự trùng hợp khá thú vị so với 1 sản phẩm khác của Iolo.
Chính vì thế ta cần Updated thêm 1 chút vào Function Keygen chính của ta thêm 1
Para
Ai tìm ra vụ này thêm 30 points :D
Zombie(REA)
Keygen cho các soft cua emailarms.com
Thực ra mấy soft này của đã bị anh Moon nhà ta
làm thịt cả họ hàng rùi . Nhưng thôi đến hôm nay em mới sờ lại nó để code
Keygen nên cứ post lên hết cả trên này hiiiiiiiii không để ở nhà cũng chẳng
làm gì đúng không anh Moon.
Hix lúc đầu chưa bít gì nên ngại , còn bấy giờ đọc lại thấy mấy soft này Kegen
cực dễ đúng như lúc đầu anh Moon đã nói không thử thì không biết được .
Mấy soft này nó chỉ thay đổi các value ở vị trí default thôi :)
Keygen for 1 st Desktop Guard v1.5
Code:
- Serial nhập vào phải có chiều dài tối thiểu là 14 , trong quá trình nhập thì các vị
trí sau đây bắt buộc phải như sau :
S[0] = 3 ; S[2] = 3 ; S[3] = 9 ; S[4] = 0; S[7] = 8 ; S[8] = 8 ; S[10] = 2 ; Còn các vị
trí khác thì bất kì .
char reaName[64]={0};
char reaSerial[64]={0};
char DefaultString[20] = "0123456789";
int LenName=0;
int i=0 , randomChart = 0;
LenName=GetDlgItemText(IDC_NAME,reaName,64);
if (LenName < 1)
{
MessageBox(" ===== Your name atleast 1 chart =====
","Hey !! Please input your name again !! ");
}
else
{
i = 0;
while(i < 14)
{
if (i == 0)
{
reaSerial[i] = 0x33;
i++;
}
if (i == 2)
{
reaSerial[i] = 0x33;
i++;
}
if (i == 3)
{
reaSerial[i] = 0x39;
i++;
}
if (i == 4)
{
reaSerial[i] = 0x30;
i++;
}
if (i == 7)
{
reaSerial[i] = 0x38;
i++;
}
if (i == 8)
{
reaSerial[i] = 0x38;
i++;
}
if (i == 10)
{
reaSerial[i] = 0x32;
i++;
}
else
{
reaSerial[i] = DefaultString[randomChart = rand() % 10];
i++;
}
}
}
SetDlgItemText(IDC_SERIAL,reaSerial);
Kegen for Internet KioskPro v1.4
Code:
Các vị trí mặc định trong chuỗi Registration code là:
S[0] = 2 ; S[2] = 1 ; S[3] = 5 ; S[4] = 4 ; S[7] = 3 ; S[8] = 1 ; S[10] = 1
char reaName[64]={0};
char reaSerial[64]={0};
char DefaultString[20] = "0123456789";
int LenName=0;
int i=0 , randomChart = 0;
LenName=GetDlgItemText(IDC_NAME,reaName,64);
if (LenName < 1)
{
MessageBox(" ===== Your name atleast 1 chart =====
","Hey !! Please input your name again !! ");
}
else
{
i = 0;
while(i < 14)
{
if (i == 0)
{
reaSerial[i] = 0x32;
i++;
}
if (i == 2)
{
reaSerial[i] = 0x31;
i++;
}
if (i == 3)
{
reaSerial[i] = 0x35;
i++;
}
if (i == 4)
{
reaSerial[i] = 0x34;
i++;
}
if (i == 7)
{
reaSerial[i] = 0x33;
i++;
}
if (i == 8)
{
reaSerial[i] = 0x31;
i++;
}
if (i == 10)
{
reaSerial[i] = 0x31;
i++;
}
else
{
reaSerial[i] = DefaultString[randomChart = rand() % 10];
i++;
}
}
}
SetDlgItemText(IDC_SERIAL,reaSerial);