GG 32-64 bit kodlar tek Scriptte (Offset-Aobs örneğinde)

Tekrar Selam…

GG Lua Script eğitimine kaldığımız yerden devam edelim…

Farklı bir menü ve kod etkileşimi göstereceğim “Admin Seviyesi” dediğim bu lua kodlaması ile acemiler evde usta yardımı olmadan oynamasın… :smiley:

Bu işin eğlencesi, asıl az çok hakim olmayanlar için beyin yakan kodlama geliyor…

Örnekteki kodlar içinde okuyacağınız gibi oyunun “lib” dosyasından sökülüp “Offset” değerleri ve “Aobs” karışımı ile yine aynı dosya içinde taranıp değişilen değerlerdir. ( Bununla ilgili ayrıntı için yorum yapın, ilgili adminler açıklama yapacaktır.)

Bizim konumuz, tek scriptte 32 ve 64 bit kodları paketlemek.

32 bit normal bir Script şöyle paketlenmiş:

local debug 
local cheat = {} 
local dmg, hp, hs 

if  gg.getTargetInfo()['x64'] then 
   gg.alert("Bu komut dosyası yalnızca oyunun 32 bit varyantları için çalışır.") 
   os.exit() 
end 

local function memPatch(offset, hex) 
   local addr = gg.getRangesList('libil2cpp.so')[1].start 
   local value = {{ 
      address = addr + offset, 
      flags = gg.TYPE_QWORD, 
      value = hex .. "r", 
   }} 
   gg.setValues(value) 
end 

local function getStat (stat) 
   stat = stat or 2 
   local ask = gg.choice({"ON", "OFF"}, stat, "") 
   if ask == nil then return stat end 
   return ask 
end 

function cheat.damage () 
   dmg = getStat(dmg) 
   if dmg == 1 then 
      memPatch (0x9C1630, "00 00 A0 E3 1E FF 2F E1") 
   elseif dmg == 2 then 
      memPatch (0x9C1630, "F0 4B 2D E9 18 B0 8D E2") 
   else debug = 1 
   end 
end 

function cheat.health () 
   hp = getStat(hp) 
   if hp == 1 then 
      memPatch (0x100C16C, "01 00 A0 E3 1E FF 2F E1") 
   elseif hp == 2 then 
      memPatch (0x100C16C, "FC 00 90 E5 1E FF 2F E1") 
   else debug = 1 
   end 
end 

local function home () 
   debug = -1 
   local items = { 
      "damage", 
      "health", 
   } 
   local menu = gg.choice(items, 0, "") 
   if menu == nil then return nil end 
   cheat [items [menu]:lower() ]() 
end 

-- Script config 
while true do 
   if gg.isVisible(true) then 
      gg.setVisible(false) debug = 1 
   end 
   if debug == 1 then home() end 
end

------------------ kod sonu…

Biz bu pakete oyunun 64 bit versiyonundan sökülen kodları uygun bir yöntem ile şöyle entegre edeceğiz:
------------------ 32 ve 64 bit bir arada

local debug 
local cheat = {} 
local dmg, hp, hs 
local bitCheck = 128 

  if gg.getTargetInfo()['x64'] then 
    bitCheck = 64 
    else 
    bitCheck = 32 
   end 
end 

local function memPatch(offset, hex) 
   local addr = gg.getRangesList('libil2cpp.so')[1].start 
   local value = {{ 
      address = addr + offset, 
      flags = gg.TYPE_QWORD, 
      value = hex .. "r", 
   }} 
   gg.setValues(value) 
end 

local function getStat (stat) 
   stat = stat or 2 
   local ask = gg.choice({"ON", "OFF"}, stat, "") 
   if ask == nil then return stat end 
   return ask 
end 

function cheat.damage() 
   dmg = getStat(dmg) 
   if dmg == 1 then --- şimdi hem 32 hem 64 bit kodu paketleyelim.. 
      if bitCheck==64 then 
      memPatch (0xD50324, "00 00 80 D2 C0 03 5F D6") 
      elseif bitCheck==32 then 
      memPatch (0x9C1630, "00 00 A0 E3 1E FF 2F E1") 
      end 
   elseif dmg == 2 then 
      if bitCheck==64 then 
      memPatch (0xD50324, "F6 57 BD A9 F4 4F 01 A9") 
      elseif bitCheck==32 then 
      memPatch (0x9C1630, "F0 4B 2D E9 18 B0 8D E2") 
      end 
   else debug = 1 
   end 
end 

function cheat.health () 
   hp = getStat(hp) 
   if hp == 1 then 
      if bitCheck==64 then 
      memPatch (0xD4D418, "00 00 80 D2 C0 03 5F D6") 
      elseif bitCheck==32 then 
      memPatch (0x100C16C, "01 00 A0 E3 1E FF 2F E1") 
      end 
   elseif hp == 2 then 
      if bitCheck==64 then 
      memPatch (0xD4D418, "00 48 41 BD C0 03 5F D6") 
      elseif bitCheck==32 then 
      memPatch (0x100C16C, "FC 00 90 E5 1E FF 2F E1") 
      end 
   else debug = 1 
   end 
end 

local function home () 
   debug = -1 
   local items = { 
      "damage", 
      "health", 
   } 
   local menu = gg.choice(items, 0, "") 
   if menu == nil then return nil end 
   cheat [items [menu]:lower() ]() 
end 

-- Script config 
while true do 
   if gg.isVisible(true) then 
      gg.setVisible(false) debug = 1 
   end 
   if debug == 1 then home() end 
end

----------------------- kod sonu…

Kodda kalabalık olmasın diye burada açıklama yapalım…

Neler değişti:

Açılan oyun sürecinin 64 bit mi? sorgusunu “check” ile genişlettik…


local bitCheck = 128. —yerel sahte bir sorgu başlattık…

  if gg.getTargetInfo()['x64'] then  -- oyun sürecini, işlemini test ettik..
    bitCheck = 64  --- 64 bit ise 64 adını verdik..
    else   --- değilse
    bitCheck = 32   --- 32 bit adını verdik..
   end 
end

--------------------- kod sonu…

Check sorgusu bit adını aldığına göre, bunu şu şekilde kod içinde kullandık:

----------------------+

function cheat.damage() 
   dmg = getStat(dmg) 
   if dmg == 1 then --- şimdi hem 32 hem 64 bit kodu paketleyelim.. 
      if bitCheck==64 then 
      memPatch (0xD50324, "00 00 80 D2 C0 03 5F D6")   -- bu 64 bit saldırı kodunuz..
      elseif bitCheck==32 then 
      memPatch (0x9C1630, "00 00 A0 E3 1E FF 2F E1")   -- bu 32 bit saldırı kodunuz..
      end 
   elseif dmg == 2 then 
      if bitCheck==64 then 
      memPatch (0xD50324, "F6 57 BD A9 F4 4F 01 A9")   --- bu 64 bit eski haline getirme kodunuz..
      elseif bitCheck==32 then 
      memPatch (0x9C1630, "F0 4B 2D E9 18 B0 8D E2")   --- bu 32 bit eski haline getirme kodunuz..
      end 
   else debug = 1 
   end 
end

--------------------- kod sonu…

Bir check, sorgu yereli atadık, onu oyun sürecine göre 32 veya 64 yaptık ve bunu kodun işlevine bıraktık. Kod check, sorgu kaç bit ise onun altındaki offseti aktif edecek şimdi…

Elbette ki sorularınız yada katkılarınız olacaktır, yorum yapmaktan çekinmeyin…

Offset kodları için, @Pro_Ejder ve adminlerimize teşekkürler…

İyi oyunlar…

5 Likes

Ablam helalin var maşallah valla bilgisayar gibisin ellerine emeğine sağlık

2 Likes

Seviyorum lua yı… çok akıllı kodlama… :slight_smile:

Teşekkürler…

3 Likes

Benim aklım bunları alsa neler yaparım neler :grin::grin:

2 Likes

Harika üstüne ne denir bilmiyorum; ama ters offsetli menüyü hata almadan 32 64 birleştirmek her kişinin harcı değil. Eline sağlık inavasyon kraliçesi :+1: Script içinde kafası karışanlar hiç çekinmeden soru sorabilirler bu konuda @AylinCE en açık cevabı verecektir.

2 Likes

Phyton programlama diline benziyormuş.

2 Likes

Windows ve Android’de kısıtlı zira, lua başlangıç sebebim daima…

@Pro_Ejder , Script tamam zira Offset ve lib soruları sende, hatta ne cevap vereceksen bende takip edeceğim… :slight_smile:

Adminler, CE ile ve GG ile lua ya başlamalı yavaştan…

2 Likes

Javascript’ten sonra en hafif programlama dilidir lua kullanımı çok basittir. Temel bir C veya C++ dilinde ufak ta olsa bilgiye sahipsen çocuk oyuncağı gibi gelecektir Lua.

3 Likes

C# SQL biraz Java öğrendim. Tam net bir şekilde konulara bakamadım. Şu an başımda başka bir hadise var onu halledeyim. Hemen lua yı çözecem.

1 Like

Java varsa, acele et lua ya başla, lua içine gömülü bir Java kodu aktif etmem lazım, sözdizini için fikrin olabilir belki…

1 Like

Profesyonel şekilde Java bilmiyorum

1 Like

https://drive.google.com/folderview?id=0BzZ7ydwTo3xuN0U5MXNYNkdQZlU&resourcekey=0-rVxkUonv6oV_sfk4x6xSlg

Drive bölümüne aldığım notlar bakabilirsin.

1 Like