Reklam
Benim ne kadar iyi niyetli bir insan olduğumu bilen bilirde genelde yanlış anlaşılıyorum. Öyle bir durum söz konusu değil hocam![]()
eyvallah hocam problem yok <3Anlıyorum hocam, zaten ben de seni kötülemek için yazmadım. Yanlış anlaşılmalar olabiliyor forum ortamında. Benim demek istediğim sadece kullanılan altyapılar ve katkılar konusunda biraz daha açık olunması gerektiğiydi. Onun dışında ortaya emek koyduğun belli, buna bir şey demiyorum![]()
Herşeyden önemlisi sağlık büyük geçmiş olsun hocam umarım tez zamanda sağlığına kavuşursun.Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
madem herkes bir şeyler öğrenmek istiyor yapmak istiyor forumca herkes destek atsın bu dosyaları geliştirelim
RABBİM ŞİFA VERSİN REİSİM <3Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
ağzına sağlık çok geçmiş olsun şifalar dilerim.Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
geçmiş olsun şifalar dilerim.Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Çok geçmiş olsun hocam Allah yardımcınız olsun, sağlığınız her şeyden önemli ayrıca bilgilendirme için teşekkürlerLenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Geçmiş olsun kardeşim sağlıktan ötesi yok. Rabbim acil şifalar versin.Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Cok gecmis olsun dostum saglık onemliLenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
geçmiş olsun hocam rabbim acil şifalar versinLenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Hocam merak ettim kaç yıldır içindesin ?Ben yıllardır bu işin içindeyim emeğin ne demek olduğunu en iyi ben bilirim.
Evet.. ortada emek var.. siz adamların dosyaları piyasaya düştü diye sevinirken aksine ben üzülüyorum.
Ve bu emektar insanlardan aldığım veya yaptırdığım her iş için ben onların emeğinin karşılığını minnet ve saygı çerçevesinde karşılığı neyse ödemişimdir yani hakkı neyse vermişimdir anladın mı.
"Siz şimdi gidip Araba aldığınızda Arabanızı nasıl sergiliyorsunuz bu benim malım artık diye.. veya Ev ve ya Motor ve ya Telefon fark etmiyor. Siz mi üretmiş oluyorsunuz ? Yoksa hakkını vermiş almışmı oluyorsunuz."
Farkını göremedim ?
Abi sana tamamen katılıyorum .Siz diye o bahsettiğin adamın elindeki dosyalara göz atsan hayretler içinde kalıp, 'Şunu da yaptıralım, bunu da ekletelim' diyerek source sahibinin peşinde 5 bin , 10 bin lira karşılığında sürekli darlayacak birisin. Beni buradaki insanlarla karıştırma.
Altımdaki aracın piyasa değeri şu an 4 milyon TL; ancak bir kez bile senin yaptığın gibi bununla gösteriş yapmadım yapmamda karakter meselesi demekki
150 bin liraya satın aldığın bir source için bu kadar iddialı kelimeler kullanman gerçekten hayret verici. herneyse bol şans sana)
Hacı geçmiş olsun.Allah acil şifa versin.Lenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..
Geçmiş olsun Allah Acil şifalar versin inşallahLenfoma tedavisi görmekteyim kemoterapi tedavisi alıyorum haftada 4 gün hastane 2 gün iş 1 gün de evde olabiliyorum. Elimden geldiği kadar foruma birşeyler katmak isteğindeyim fakat şu sıralar gerçekten sağlığım müsade etmiyor.
Paylaşılan dosyalardaki eksik sadece pus değil pusa gelene kadar çok fazla eksikleri var ben adım adım ilerletiyorum. Şuanda belli bir aşamaya geldi ama paylaşım için çok uygun değil. İşler yolunda giderse 1 ay içinde tekrar güncelleyeceğim paylaşımı offset konusuna takılanlar çok var ama “Offset tek başına adres değildir. Offset sadece yol tabelasıdır.” Oyunların çoğunda veri düz bir yerde durmaz. Özellikle Knight Online gibi eski MMO clientlarında veriler: array içinde, struct içinde, pointer arkasında, bazen encrypted/decrypted cache içinde tutulur.
Yani offset sadece: Buradan başla demektir. Bütün offsetleri doğru çıkarmak yeterli değil.
Çoğu kişi işe ilk başladığında şöyle zannediyor : 0x98 = mana
Ama olay daha çok şöyle ilerliyor : skillBase = 0x500000 structSize = 0x1F8 skillID = 5 manaOffset = 0x98 gibi gibi örnek veriyorum. Sizin bu tabloları elle veya geçmiş versiyonlardan bakarak matematiksel olarak hesaplamanız gerekir. Bir de pointer mantığını anlamayan çok oluyor. Ona da şöyle derim. C++ matematik temelli bir dildir [[base + 0x30] + 0x18] bu mantığı okuyunca anlamak gerekli öncelikle.
Mesela şu satır aslında tamamen matematik:
ptr + (index * sizeof(SKILL))
Burada:
index * sizeof(SKILL) → kaç byte ileri gideceğini hesaplıyor
ptr + ... → memory’de adres kaydırıyor
Aslında RAM düz bir byte dizisi gibi düşünülür: [0000][0001][0002][0003]...
C++ sana: “kaç byte ileri gitmek istiyorsun?” sorusunu sürekli sordurur.
Özellikle Knight Online gibi oyunlarda: packet parsing, memory reading, hook, opcode, entity list, skill table
işlerinin çoğu matematik + mantık birleşimi.
Mesela assembly’de gördüğün:
mov eax,[esi+ecx*4]
aslında direkt:
address = esi + (ecx * 4)
demek.
Yani: ecx = index, 4 = veri boyutu, esi = base pointer
Compiler bunu senin yerine üretir Bu sebeple en iyi reverse yapan adamların çoğu:
Matematiksel düşünür, pattern görür, memory’yi tablo gibi okur.
İntegral seviyesinde bir matematiğe tabiiki gerek yok daha çok; hexadecimal, bit işlemleri, offset hesabı, pointer mantığı, struct dizilimi önemli oluyor.
En büyük kırılma noktası genelde şu oluyor: Pointer aslında sayıymış. Bunu anlayınca C++ ve reverse bir anda oturuyor.
Vaktinizi aldıysam affola iyi forumlar..