re work
Süper Üye
- Katılım
- 31 Ocak 2016
- Mesajlar
- 951
- Çözümler
- 8
- Tepki puanı
- 435
- Ödüller
- 8

Geçmişte C# için paylaştığım projeyi ruby diline uyarlayıp burada paylaşmış bulunuyorum C# haline ise linkten ulaşabilirsiniz: https://memoryhackers.org/konular/hwid-builder-7-hardware-features-full-source.170242/
Gençler Ruby programlama dili kullanılarak gerekli WMI sınıflarını kullanarak BIOS, CPU, HDD, GPU, MAC adresi, OS ve SCSI bilgilerini alır ve bu bilgileri karıştırarak benzersiz bir HWID oluşturur. Oluşturulan HWID'yi ekrana yazdırır. benzersiz bir HWID oluşturan kodlamayı açıklamalarıyla birlikte güncellenmiş halini sizlerle paylaşıyorum.
Ruby:
require 'socket'
require 'win32ole'
# Memoryhackers.org tutorial.
# BIOS bilgilerini almak için WMI sınıfını kullanır.
def get_bios_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT Manufacturer, SMBIOSBIOSVersion, IdentificationCode FROM Win32_BIOS"
result = wmi.ExecQuery(query)
bios_info = result.map do |bios|
"#{bios.Manufacturer.strip}|#{bios.SMBIOSBIOSVersion.strip}|#{bios.IdentificationCode.strip}"
end
bios_info.join("|")
end
# CPU bilgilerini almak için WMI sınıfını kullanır.
def get_cpu_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT ProcessorId, UniqueId, Name FROM Win32_Processor"
result = wmi.ExecQuery(query)
cpu_info = result.map do |cpu|
"#{cpu.ProcessorId.strip}|#{cpu.UniqueId.strip}|#{cpu.Name.strip}"
end
cpu_info.join("|")
end
# HDD bilgilerini almak için WMI sınıfını kullanır.
def get_hdd_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT Model, TotalHeads FROM Win32_DiskDrive"
result = wmi.ExecQuery(query)
hdd_info = result.map do |hdd|
"#{hdd.Model.strip}|#{hdd.TotalHeads}"
end
hdd_info.join("|")
end
# GPU bilgilerini almak için WMI sınıfını kullanır.
def get_gpu_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT DriverVersion, Name FROM Win32_VideoController"
result = wmi.ExecQuery(query)
gpu_info = result.map do |gpu|
"#{gpu.DriverVersion.strip}|#{gpu.Name.strip}"
end
gpu_info.join("|")
end
# MAC adresini almak için Socket kütüphanesini kullanır.
def get_mac_address
Socket.getifaddrs.select { |ifaddr| ifaddr.addr.ipv4? && !ifaddr.addr.ipv4_loopback? }.map { |ifaddr| ifaddr.addr.mac_address }.first
end
# OS bilgilerini almak için WMI sınıfını kullanır.
def get_os_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT SerialNumber, Name FROM Win32_OperatingSystem"
result = wmi.ExecQuery(query)
os_info = result.map do |os|
"#{os.SerialNumber.strip}|#{os.Name.strip}"
end
os_info.join("|")
end
# SCSI bilgilerini almak için WMI sınıfını kullanır.
def get_scsi_info
wmi = WIN32OLE.connect("winmgmts://")
query = "SELECT DeviceID, Name FROM Win32_SCSIController"
result = wmi.ExecQuery(query)
scsi_info = result.map do |scsi|
"#{scsi.DeviceID.strip}|#{scsi.Name.strip}"
end
scsi_info.join("|")
end
# HDD ID, CPU bilgisi, BIOS ID, GPU bilgisi, MAC adresi, OS bilgisi ve SCSI bilgisi kullanılarak benzersiz bir HWID oluşturulur.
def generate_hwid
bios_info = get_bios_info
cpu_info = get_cpu_info
hdd_info = get_hdd_info
gpu_info = get_gpu_info
mac_address = get_mac_address
os_info = get_os_info
scsi_info = get_scsi_info
hwid = "#{hdd_info}|#{cpu_info}|#{bios_info}|#{gpu_info}|#{mac_address}|#{os_info}|#{scsi_info}"
hwid.gsub!(' ', '') # Boşlukları kaldırır
hwid.downcase! # Tüm harfleri küçük harfe çevirir
hwid
end
# Memoryhackers.org
# Oluşturulan HWID'yi ekrana yazdırır.
puts "Benzersiz HWID: #{generate_hwid}"
Konuda gerekli WMI sınıflarını kullanarak BIOS, CPU, HDD, GPU, MAC adresi, OS ve SCSI bilgilerini alır ve bu bilgileri karıştırarak benzersiz bir HWID oluşturur. Hedeflenen budur.
Kodun açıklamalarıyla birlikte, her bir adımda ne yapılıp ne elde edildiğini anlamak daha kolay olacaktır okumanız yeterli. Bu sayede kodu daha iyi anlayabilir ve istediğiniz şekilde güncelleyebilirsiniz gençler..
Post automatically merged:
Ek bilgi; Ayrıca win32ole ve socket kütüphanelerini yüklemeniz önemlidir.
Son düzenleme: