Skip to content

kaplan-025/FirinYTL-Lisans

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

README.md

FirinYTL Lisans Atlatma

PentaFırın 2004 (FirinYTL.exe) yazılımının lisans doğrulama mekanizmasının tersine mühendislik analizi ve atlatma aracı.

İçindekiler

Türkçe Açıklama

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.

Orijinal lisans akışı:

  1. Program başladığında FirinYTL.dll içindeki lisans fonksiyonu (RVA 0x5a72a0) çağrılır
  2. Fonksiyon DAO (Data Access Objects) ile lisans1 ODBC veritabanına bağlanır
  3. "select * from Islem where mikt..." sorgusu çalıştırılır
  4. Dönen kayıtların belirli alanları (AuthorityCode, ID0, ID1, ID2) kontrol edilir
  5. Tüm kontroller geçilirse [ebp-0x1c] = -1 (lisanslı), aksi halde 0 (lisanssız) döner
  6. Dönüş değeri global bayrağa ([0x9cc55a]) yazılır
  7. Eğer lisanssızsa demo/kısıtlı mod açılır veya program kapanır

Yapılan patch:

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 e4ff 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.

English Summary

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], ediinc 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.

Kullanım

# 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

Gereksinimler

  • Python 3
  • Windows üzerinde çalıştırmak için: orijinal FirinYTL.exe ve bağımlılıkları
  • Wine üzerinde çalıştırmak için: WINEPREFIX ile 32-bit Wine kurulumu

Nasıl Çalışır?

Detaylı tersine mühendislik analizi için ANALYSIS.md dosyasına bakın.

Kısaca:

  1. lisans.exe 16-bit DOS programı donanım seri numarasından 17 haneli anahtar üretir
  2. Bu anahtar DISK.INF dosyasına yazılır
  3. FirinYTL.exe başladığında VB5 native-code lisans fonksiyonu (RVA 0x5a72a0) çalışır
  4. DAO (ODBC) ile Paradox formatındaki lisans veritabanına bağlanır
  5. Dönen kayıtların alanları kontrol edilir
  6. Tüm kontroller geçilirse lisanslı kabul edilir

Patch, adım 6'daki dönüş değerini her zaman "lisanslı" yapar.

Dosyalar

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ı

License

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.

About

PentaFırın 2004 (FirinYTL.exe) yazılımının lisans doğrulama mekanizmasının tersine mühendislik analizi

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages