الفريق العربي للهندسة العكسية
Pc Guard v5 Keygen Algorithm - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html)
+--- قسم : فك الضغط اليدوي - Unpacking (https://www.at4re.net/f/forum-27.html)
+--- الموضوع : Pc Guard v5 Keygen Algorithm (/thread-2865.html)



Pc Guard v5 Keygen Algorithm - vosiyons - 18-09-2021

Hello I am sharing the pc guard v5 keygen algorithm with you.


RE: Pc Guard v5 Keygen Algorithm - dilip786 - 19-09-2021

(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


RE: Pc Guard v5 Keygen Algorithm - overlap - 19-09-2021

(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



RE: Pc Guard v5 Keygen Algorithm - vosiyons - 19-09-2021

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.


RE: Pc Guard v5 Keygen Algorithm - overlap - 19-09-2021

! 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



RE: Pc Guard v5 Keygen Algorithm - vosiyons - 24-06-2024

@overlap

تحليل مفصل لخوارزمية إنشاء المفاتيح لبرنامج 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، الضرب، القسمة، والطرح، مما يجعل من الصعب توقع المفتاح الناتج بدون معرفة المدخلات الأصلية وجميع التفاصيل في الخوارزمية.

هذه العملية تهدف إلى توليد مفاتيح فريدة وصعبة التخمين استنادًا إلى القيم المدخلة، مما يعزز من أمان البرنامج ضد الاستخدام غير المصرح به.


RE: Pc Guard v5 Keygen Algorithm - H@wk0 - 25-06-2024

نفس الشفرة المصدرية لكن بلغة الـ 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);