PentaFırın 2004 (FirinYTL.exe) yazılımının lisans doğrulama mekanizmasının tersine mühendislik analizi ve atlatma aracı.
Bu proje, PentaFırın 2004 (FirinYTL.exe) isimli VB5 ile yazılmış bir ERP/Muhasebe yazılımının lisans doğrulama mekanizmasını tersine mühendislik ile analiz edip atlatmak için yapılmıştır.
- Program başladığında
FirinYTL.dlliçindeki lisans fonksiyonu (RVA 0x5a72a0) çağrılır - Fonksiyon DAO (Data Access Objects) ile
lisans1ODBC veritabanına bağlanır "select * from Islem where mikt..."sorgusu çalıştırılır- Dönen kayıtların belirli alanları (AuthorityCode, ID0, ID1, ID2) kontrol edilir
- Tüm kontroller geçilirse
[ebp-0x1c] = -1(lisanslı), aksi halde0(lisanssız) döner - Dönüş değeri global bayrağa (
[0x9cc55a]) yazılır - Eğer lisanssızsa demo/kısıtlı mod açılır veya program kapanır
Tek bir byte değişikliği ile lisans doğrulama fonksiyonunun her zaman "lisanslı" dönmesi sağlanmıştır:
| Offset | Değişiklik |
|---|---|
RVA 0x5a7345 |
89 7d e4 → ff 45 e4 |
| (Assembly) | mov [ebp-0x1c], edi (edi=0) → inc dword [ebp-0x1c] (1 yap) |
Bu değişiklik, lisans fonksiyonunun tüm COM/DB başlatma işlemlerini normal çalıştırıp sadece
en sonda dönüş değerini 1 (lisanslı) yapmasını sağlar. Böylece Runtime Error oluşmaz.
This project reverse-engineers and bypasses the license validation mechanism of PentaFırın 2004 (FirinYTL.exe), a Turkish VB5 ERP/accounting application.
Single-byte patch at RVA 0x5a7345 changes:
mov [ebp-0x1c], edi→inc dword [ebp-0x1c]
This makes the validation function return 1 (licensed) regardless of database state,
while still executing all COM/DB initialization code to avoid runtime errors.
# Sanal ortam (isteğe bağlı)
python3 -m venv venv && source venv/bin/activate
# Patch uygula
python3 patch_license.py FirinYTL.exe
# Çıktı: FirinYTL_PATCHED.exe- Python 3
- Windows üzerinde çalıştırmak için: orijinal FirinYTL.exe ve bağımlılıkları
- Wine üzerinde çalıştırmak için:
WINEPREFIXile 32-bit Wine kurulumu
Detaylı tersine mühendislik analizi için ANALYSIS.md dosyasına bakın.
Kısaca:
lisans.exe16-bit DOS programı donanım seri numarasından 17 haneli anahtar üretir- Bu anahtar
DISK.INFdosyasına yazılır - FirinYTL.exe başladığında VB5 native-code lisans fonksiyonu (
RVA 0x5a72a0) çalışır - DAO (ODBC) ile Paradox formatındaki lisans veritabanına bağlanır
- Dönen kayıtların alanları kontrol edilir
- Tüm kontroller geçilirse lisanslı kabul edilir
Patch, adım 6'daki dönüş değerini her zaman "lisanslı" yapar.
| Dosya | Açıklama |
|---|---|
patch_license.py |
Lisans atlatma aracı (bağımsız Python betiği) |
ANALYSIS.md |
Detaylı tersine mühendislik analizi |
lisans.exe |
16-bit DOS anahtar üretici (orijinal) |
DISK.INF |
Örnek lisans dosyası |
Bu proje sadece eğitim ve araştırma amaçlıdır. İçerdiği bilgiler yasal yazılım kullanıcılarının kendi lisanslarını yönetmelerine yardımcı olmak içindir. Yazılım korsanlığını teşvik etmez.