18-09-2021, 09:36 PM
19-09-2021, 02:48 PM
(18-09-2021, 09:36 PM)vosiyons كتب : [ -> ]Hello I am sharing the pc guard v5 keygen algorithm with you.? how to create pc guard v5 keygen
plz share video tutorial sir
19-09-2021, 03:12 PM
(18-09-2021, 09:36 PM)vosiyons كتب : [ -> ]Hello I am sharing the pc guard v5 keygen algorithm with you.
!!! Useless
...Incomplete C++ builder code
.Attached VC++ 6 (MFC) source from Tuts4you
...Incomplete C++ builder code
.Attached VC++ 6 (MFC) source from Tuts4you
19-09-2021, 05:39 PM
Useless!!!
...Incomplete C++ builder code
.Attached VC++ 6 (MFC) source from Tuts4you
@overlap
Hello bro @overlap
I wrote keygen for pcguard v5 and v6. The important thing is to find the constant value used by the programmer in the keygen.
PC Guard is in great pain here.
If the correct serial corresponding to the site code is known, I can find this fixed value in 5 minutes. It's also found with brute force, but it's a long job.
XXXX I found it with brute force in the program.
It has been a long time since the v5 and v6 keygen and serial control algorithms were released.
An important note:
PCGuard key tool can't do nothing if you don't have a valid key "Activation Code" or "Program ID" and also the program has any PE section encrypted.
...Incomplete C++ builder code
.Attached VC++ 6 (MFC) source from Tuts4you
@overlap
Hello bro @overlap
I wrote keygen for pcguard v5 and v6. The important thing is to find the constant value used by the programmer in the keygen.
PC Guard is in great pain here.
If the correct serial corresponding to the site code is known, I can find this fixed value in 5 minutes. It's also found with brute force, but it's a long job.
XXXX I found it with brute force in the program.
It has been a long time since the v5 and v6 keygen and serial control algorithms were released.
An important note:
PCGuard key tool can't do nothing if you don't have a valid key "Activation Code" or "Program ID" and also the program has any PE section encrypted.
19-09-2021, 06:37 PM
! PCGuard Protection mechanism it's not my main interest
...I found your snippet useless and incomplete because it doesn't meet learning requirement to build it easily
...Instead of these few lines, better way is to share the entire source project
...I found your snippet useless and incomplete because it doesn't meet learning requirement to build it easily
...Instead of these few lines, better way is to share the entire source project
24-06-2024, 09:52 AM
@overlap
تحليل مفصل لخوارزمية إنشاء المفاتيح لبرنامج PC Guard v5:
1. **تحويل
```cpp
ProgramID = StrToHex(aux);
```
يتم تحويل
2. **التحويل الأول لـ
```cpp
ProgramID = (ProgramID ^ SiteCode) * 2;
```
يتم تطبيق عملية XOR بين
3. **تحويل
```cpp
SiteCode = SiteCode - UserCode;
```
يتم طرح
4. **التحويل الثاني لـ
```cpp
ProgramID = (ProgramID ^ FString) ^ SiteCode;
```
يتم تطبيق عملية XOR مرة أخرى على
5. **تحويل
```cpp
UserCode = UserCode * 2;
```
يتم مضاعفة
6. **عملية القسمة والباقي لـ
```cpp
SiteCode = (SiteCode / 0x9A4) * (SiteCode % 0x9A4);
```
يتم قسمة
7. **التحويل النهائي لـ
```cpp
ProgramID = (((ProgramID ^ SiteCode) - 0xA6B38164) ^ LString) + UserCode;
```
يتم تطبيق عملية XOR بين
8. **تحويل
```cpp
strcpy(aux, eFString->Text.c_str());
FString = StrToHex(aux);
strcpy(aux, eLString->Text.c_str());
LString = StrToHex(aux);
```
يتم تحويل النصوص في
9. **تشكيل السلسلة النهائية:**
```cpp
TVarRec sd[] = {(int)LString, (int)ProgramID, (int)FString};
String String;
String = Format("%4X-%8X-%4X", sd, 3);
eInitCode->Text = String;
```
يتم تشكيل مصفوفة تحتوي على
### شرح تفصيلي
هذه الخوارزمية تأخذ المدخلات
هذه العملية تهدف إلى توليد مفاتيح فريدة وصعبة التخمين استنادًا إلى القيم المدخلة، مما يعزز من أمان البرنامج ضد الاستخدام غير المصرح به.
تحليل مفصل لخوارزمية إنشاء المفاتيح لبرنامج PC Guard v5:
1. **تحويل
ProgramID
إلى نص سداسي عشر:**```cpp
ProgramID = StrToHex(aux);
```
يتم تحويل
ProgramID
إلى نص سداسي عشر. aux
هنا هو سلسلة نصية يتم تحويلها إلى نص سداسي عشر.2. **التحويل الأول لـ
ProgramID
:**```cpp
ProgramID = (ProgramID ^ SiteCode) * 2;
```
يتم تطبيق عملية XOR بين
ProgramID
و SiteCode
، ثم يتم مضاعفة الناتج.3. **تحويل
SiteCode
:**```cpp
SiteCode = SiteCode - UserCode;
```
يتم طرح
UserCode
من SiteCode
.4. **التحويل الثاني لـ
ProgramID
:**```cpp
ProgramID = (ProgramID ^ FString) ^ SiteCode;
```
يتم تطبيق عملية XOR مرة أخرى على
ProgramID
، هذه المرة مع FString
و SiteCode
.5. **تحويل
UserCode
:**```cpp
UserCode = UserCode * 2;
```
يتم مضاعفة
UserCode
.6. **عملية القسمة والباقي لـ
SiteCode
:**```cpp
SiteCode = (SiteCode / 0x9A4) * (SiteCode % 0x9A4);
```
يتم قسمة
SiteCode
على 0x9A4 (2468) وضرب الناتج في الباقي.7. **التحويل النهائي لـ
ProgramID
:**```cpp
ProgramID = (((ProgramID ^ SiteCode) - 0xA6B38164) ^ LString) + UserCode;
```
يتم تطبيق عملية XOR بين
ProgramID
و SiteCode
، ثم طرح 0xA6B38164 من الناتج. بعد ذلك، يتم تطبيق عملية XOR مع LString
وإضافة UserCode
.8. **تحويل
FString
و LString
إلى نص سداسي عشر:**```cpp
strcpy(aux, eFString->Text.c_str());
FString = StrToHex(aux);
strcpy(aux, eLString->Text.c_str());
LString = StrToHex(aux);
```
يتم تحويل النصوص في
eFString
و eLString
إلى نصوص سداسية عشرية.9. **تشكيل السلسلة النهائية:**
```cpp
TVarRec sd[] = {(int)LString, (int)ProgramID, (int)FString};
String String;
String = Format("%4X-%8X-%4X", sd, 3);
eInitCode->Text = String;
```
يتم تشكيل مصفوفة تحتوي على
LString
، ProgramID
، و FString
، ثم يتم تنسيقها إلى سلسلة نصية بنمط %4X-%8X-%4X
، ويتم تعيين الناتج إلى eInitCode->Text
.### شرح تفصيلي
هذه الخوارزمية تأخذ المدخلات
ProgramID
، SiteCode
، و UserCode
وتقوم بسلسلة من العمليات الرياضية ومعالجة النصوص السداسية عشرية لإنشاء مفتاح. العمليات تتضمن XOR، الضرب، القسمة، والطرح، مما يجعل من الصعب توقع المفتاح الناتج بدون معرفة المدخلات الأصلية وجميع التفاصيل في الخوارزمية.هذه العملية تهدف إلى توليد مفاتيح فريدة وصعبة التخمين استنادًا إلى القيم المدخلة، مما يعزز من أمان البرنامج ضد الاستخدام غير المصرح به.
25-06-2024, 02:34 PM
نفس الشفرة المصدرية لكن بلغة الـ C# لمن يرغب:
// EAX = ProgramID
// EDX = SiteCode
// EBX = UserCode
int ProgramID = StrToHex(aux);
ProgramID = (ProgramID ^ SiteCode) * 2;
SiteCode = SiteCode - UserCode;
ProgramID = (ProgramID ^ FString) ^ SiteCode;
UserCode = UserCode * 2;
SiteCode = (SiteCode / 0x9A4) * (SiteCode % 0x9A4);
ProgramID = (((ProgramID ^ SiteCode) - 0xA6B38164) ^ LString) + UserCode;
aux.Text = eFString.Text;
FString = StrToHex(aux);
aux.Text = eLString.Text;
LString = StrToHex(aux);
var sd = new[] { (int)LString, (int)ProgramID, (int)FString };
var String = string.Format("{0:X4}-{1:X8}-{2:X4}", sd);
eInitCode.Text = String;
SiteCode = (SiteCode / 0x9A4) * (SiteCode % 0x9A4);