Game Guardian Script Yapımı (Kapsamlı Eğitim)

Bazı ilgili araçlar ve anlatımlar için bu konuya bakın. (Lua Script oluşturmak için Comet kullanımı)


Ve tekrar merhaba…
Söz verdiğimiz üzere, çoğunuzun uzaktan baktığı ve yetersiz deneyim ile içine girmeye çekindiği, Lua Script (GG Version) konusunu muhtemelen kapsamlı bulacağınız şekilde açıyorum.
Umarım bu eğitimler ve fazlası ile gelişip, siteye yeni potansiyel Admin olma yolunda ilerlersiniz…

Başlangıç için GG ile oyunu hacklediğinizi ve ilgili hile kodlarınızı aldığınızı varsayıyorum…
Şimdi bu kodları Script içine entegre edelim…

  1. Bellek aralığı: hile kodlarını bulduğunuz “.apk” içine gömülü, Java, C++ gibi eklentilerden hangisi ise GG Script de kod karşılığına bakalım…

REGION_JAVA_HEAP
Jh: Java yığını" bellek bölgesi.

REGION_C_HEAP
Ch: C++ yığını" bellek bölgesi.

REGION_C_ALLOC
Ca: C++ tahsisi" bellek bölgesi.

|REGION_C_DATA
Cd: C++ .data" bellek bölgesi.

REGION_C_BSS
Cb: C++ .bss" bellek bölgesi.

REGION_PPSSPP]
PS: PPSSPP" bellek bölgesi.

REGION_ANONYMOUS
A: Anonim" bellek bölgesi.

REGION_JAVA
“J: Java” bellek bölgesi.

REGION_STACK
“S: Yığın” bellek bölgesi.

REGION_ASHMEM
“As: Ashmem” bellek bölgesi.

REGION_VIDEO
“V: Video” bellek bölgesi.

REGION_OTHER
“O: Diğer (yavaş)” bellek bölgesi.

REGION_BAD
“B: Kötü (tehlikeli)” bellek bölgesi.

REGION_CODE_APP
“Xa: Kod uygulaması (tehlikeli)” bellek bölgesi.

REGION_CODE_SYS
“Xs: Kod sistemi (tehlikeli)” bellek bölgesi.

Kullanımı: gg.setRanges()
gg.setRanges(gg.REGION_C_HEAP)
veya
gg.setRanges(bit32.bor(gg.REGION_C_HEAP, gg.REGION_C_ALLOC, gg.REGION_ANONYMOUS))
veya…
gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS)

  1. Tarama kodu entegre: gg.searchNumber()
    Söz Dizini:
    gg.searchNumber(“aranacak değer”, Tarama türü**)**
    gg.getResults(değiştirmek istediğiniz değer sayısı)
    gg.editAll(“değişim için yeni değer”, Değişim türü**)** --getResults da belirtilen tüm listeyi değiştirir.

Örnekler:

gg.searchNumber('10', gg.TYPE_DWORD)
gg.getResults(5)
gg.editAll('15', gg.TYPE_DWORD)

-- with float:
gg.searchNumber('10.1', gg.TYPE_FLOAT)
gg.getResults(5)
gg.editAll('15.2', gg.TYPE_FLOAT)

-- with XOR mode
gg.searchNumber('10X4', gg.TYPE_DWORD)
gg.getResults(5)
gg.editAll('15X4', gg.TYPE_DWORD)

-- edit few values at once
gg.searchNumber('10', gg.TYPE_DWORD)
gg.getResults(5)
gg.editAll('7;13;43;24;11', gg.TYPE_DWORD)

-- edit HEX
gg.searchNumber('h 5C E3 0B')
gg.getResults(30)
gg.editAll('h 4B 90 9B', gg.TYPE_BYTE)

-- edit text UTF-8
gg.searchNumber(':şuşpançik')
gg.getResults(100000)
gg.editAll(':şUşPaNçIk', gg.TYPE_BYTE)

-- edit text UTF-16LE
gg.searchNumber(';şuşandra')
gg.getResults(100000)
gg.editAll(';şUşAnDrA', gg.TYPE_WORD) -- UTF-16LE use WORD not BYTE!

-- edit HEX + UTF-8
gg.searchNumber("Q 5C E3 0B 'şuşpançik' 9B 11 7B")
gg.getResults(100000)
gg.editAll("Q 43 12 34 'şUşPaNçIk' 9F 1A 70", gg.TYPE_BYTE)

-- edit HEX + UTF-16LE
gg.searchNumber('Q 5C E3 0B "şuşandra" 9B 11 7B')
gg.getResults(100000)
gg.editAll('Q 41 F7 87 "şUşAnDrA" 9B 18 7B', gg.TYPE_BYTE)

-- edit HEX + UTF-8 + UTF-16LE
gg.searchNumber('Q 5C E3 0B \'şuşpançik\' 9B "şuşandra" 11 7B')
gg.getResults(100000)
gg.editAll('Q 41 F7 87 \'şUşPaNçIk\' 04 "şUşAnDrA" 71 3B', gg.TYPE_BYTE)

-- edit ARM opcodes
gg.searchNumber('~A MOV R1, R2', gg.TYPE_DWORD)
gg.getResults(100000)
gg.editAll('~A MOV R2, R3', gg.TYPE_DWORD)

gg.searchNumber(‘10;3000;1;2000:512’, gg.TYPE_DWORD)
–kod sonuna noktalı virgül ; yerine iki nokta üst üste : bırakıp tarama kodu değil, tarama bellek aralığı yazdım… Rakamlar bir birine uzak ise isteğe bağlı bunu 16 - 4086 arası bir bellek ile genişletin… yada kullanmayın bu opsiyonu…

  1. Menü Birden fazla hile listeleme ve script kapatma prosedürü…
    items: Seçim için öğeleri içeren tablo.
    selected: Belirtilmez veya (if) olarak belirtilirse nil, liste varsayılan seçim olmadan olacaktır.
    message: İletişim kutusunun isteğe bağlı başlığını belirtir. (“Bu hile …”)

Bir işlev başlatın ve menüyü bu işlev içine tablo olarak sarmalayın.

Not: Kod veya Kelimenin başına “–” iki tire koymak o kod veya satırı, açıklamayı kod dışına iter ve script bu satırı görmezden gelip okumaz… (aşağıda örnekleri mevcut)

function benimMenuListem() --bir işlev (function) açıldı..
Menu = gg.choice({" ➤ Hack 1"," ➤ Hack 2"," ➤ Hack 3","➤ ÇIKIŞ"}, nil,"Bu Hack By AylinCE tarafından oluşturulmuştur!") 
if Menu == 1 then F1() end 
if Menu == 2 then F2() end 
if Menu == 3 then F3() end 
if Menu == 4 then Exit() end 
end --işlev kapandı..

--Şimdi menülerde verilen listeye kodları entegre edin:
function F1() --Klasik örnek..
gg.clearResults() --önceki tarama sonuç listesini temizleyip başla..
gg.setRanges(gg.REGION_C_HEAP)
gg.searchNumber('10', gg.TYPE_DWORD)
gg.getResults(5)
gg.editAll('15', gg.TYPE_DWORD)
end

function F2() --size sınamalı örnek vereyim ..
gg.clearResults() 
gg.setRanges(gg.REGION_C_ALLOC, gg.REGION_ANONYMOUS)) --isteğe bağlı..
gg.searchNumber('10;3000;1;2000:512', gg.TYPE_DWORD)
--sınama..
local sonuc = gg.getResults(100) --100 sonuca kadar ne bulursa..
sonuc = tonumber(sonuc) --sonucu dize değil, sınama yapacağımız için rakam olarak formatladık..
if sonuc<15 then --çıkan sonuç 15'ten düşük ise error!
gg.alert("Kod bulunamadı!!! ") --uyarı mesajı attık..
gg.sleep(3000) --yukarıdaki mesaj görünmesi için 3 saniye bekletmek için..
else --şayet 15'ten çok sonuç varsa ..
gg.editAll('99999999', gg.TYPE_DWORD) --bulunan tüm sonuçlar değişir..
gg.alert("Hile aktif edildi.. ") 
gg.sleep(3000) 
end --sınama sorgusu kapandı..
gg.clearResults() 
end --F2 işlevi kapandı..

function F3() --bu işleve de başka bir değişim örneği verelim. Hem sınamalı, hem de çoklu arama içinde dilediğiniz rakamı değiştirin..
gg.searchNumber(“201500;0;3000;5”, gg.TYPE_DWORD)
local sonuc1 = gg.getResults(100)
for i,v in pairs(sonuc1) do
if v.value == 3000 then -- 201500 ve 0 ı atladık, sonuçlar içinden bize lazım olanlarla devam edelim..
v.value = 50000000
elseif
v.value == 5 then
v.value = 10000000
end
end
gg.setValues(sonuc1) --verdiğimiz yeni değerleri işlemek için.
gg.clearResults()
end

---Script kapatma işlevini yapalım..
function Exit() 
gg.toast("Bye.. Bye.. ") 
gg.sleep(4500) 
os.exit() 
end

--Script açık iken GG simgesini gizle..
while(true) do 
  while gg.isVisible(true) do 
      gg.setVisible(false) 
      benimMenuListem()
   end
end
--- Script ilk açıldığında menüyü yükle..
benimMenuListem()

------------------------------------------- Script Finish -------------------------
(İmla hataları varsa özür dilerim…)

Muhtemel başlangıç seviyesi bilinmesi gerekenler listelendi…
Sorularınız ve önerileriniz varsa, yorum yapmaktan çekinmeyin…
Vakit buldukça ve istek oldukça, bu konulara devam edeceğiz…

Umarım eğitimi faydalı bulursunuz…
Tekrar görüşmek üzere… İyi Oyunlar…

6 Likes

Emeğine sağlık :pray:

1 Like

Ellerine sağlık. Çok yararlı bir konu olmuş.

1 Like

Teşekkürler… Umarım geliştirecek ve bu tür konuları çoğaltacak daha çok vakit bulabiliriz…

2 Likes

Ellerine sağlık detaylı bir anlatım olmuş.

1 Like

Valla siz olmasanız biz bu işleri asla ogrenemeyiz :heart::heart:

1 Like

Herkese Teşekkürler…
Muhtemel olarak, bu konular benim ilgi alanımda ve lua içerdiği için görevimmiş gibi algılıyorum…
Size hak veriyorum…
Ekip oyunlar ile çok yoğun, 2 günlük pc maceramda kısa ve öz konular da bana kaldı :slight_smile:

3 Likes

Eline yüreğine sağlık.

1 Like