x86 / x64 Assembly Memory Protect Detect

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Jetz
Banlı Üye
Katılım
14 Haz 2020
Mesajlar
91
Tepki puanı
1
Sosyal
5 HİZMET YILI
elıne saglık bi üst seviyesini de bekliyorum
 
Uzman Üye
Katılım
25 Haz 2020
Mesajlar
289
Çözümler
4
Tepki puanı
4
Yaş
25
5 HİZMET YILI
bilgi için teşekurler 64 bit gelmesini bekliyorum hocam
 
Onaylı Üye
Katılım
28 Haz 2020
Mesajlar
68
Tepki puanı
6
Ödüller
5
Yaş
24
5 HİZMET YILI
valla eline sağlık en kısazamanda 64 üde bekliyoruz
 
Seçkin Üye
Katılım
20 Haz 2020
Mesajlar
298
Çözümler
2
Tepki puanı
3
Ödüller
3
Sosyal
5 HİZMET YILI
64-bit instructions cannot be used unless long mode is set. When long mode is operating, 16-bit instructions and virtual x86 mode are disabled and protected ...
 
Üye
Katılım
16 Haz 2020
Mesajlar
48
Çözümler
2
Tepki puanı
0
Yaş
32
5 HİZMET YILI
Assembly mimarisinde mnemonic yani işlemcinin belirli görevleri assembly diline convertleyip talimatlar vererek makine kodunu ((0-1)) değiştirerek istediğiniz herşeyi yapmanızı sağlıyan assembly kodlarıdır.

Peki bu mimarinin en büyük baş belası nedir ? Windows işletim sisteminin bazı "memory segment " yani hafıza bölümlerine erişimi engellemesi veya o bölümün hiç olmaması sonucunda eğer sizin yazdığınız kodlama bu erişimi olmuyan bölümlere erişirse cevap (( CRASH )) uygulamanın çökmesi olacaktır.

Windows işletim sisteminde bazı oyunların aniden crash atması veya kullandığınız uygulamanın aniden çökmesinin en büyük sebebi erişimi olmuyan bi bölüme erişmesinden kaynaklanıyor.

Assembly mimarisinde kesin olan bişey vardır, Yazma izni olmuyan bi bölüme yazamaz, Okuma izni olmuyan bölümü okuyamaz , Yanlış anlamayın adress leri değil , adressleri her türlü okur ama bu adressin verdiği değeri okuyamaz, Bunun için windows işletim sisteminin o bölüme erişim iznini vermesi gerekiyor veya erişmeye çalıştığınız memory bölümünün var olması gerekiyor.

Peki ben şimdi size ne gösterecem ? Bu memory protectleri okumanı sağlıyan tamamen Assembly kodlaması atacam bu benim gibi bu mimariyle uğrasanlar için altın değerinde bi kodlamadır.


Bunu nasıl yapacaz ? Çok güzel soru demi şimdi erişimi olmuyan bi yere erişmeden o yerin erişimi olup olmadığını kontrol etmek imkansızdır, eee peki erişmeden nasıl alacaz cevabı ?

Windows işletim sisteminin apisini kullanarak ( "NtQueryVirtualMemory" )

NASM:
fk:
push eax // Bu registeri kaydetmek için
push ebx // Bu registeri kaydetmek için
push ecx // Bu registeri kaydetmek için
push edx // Bu registeri kaydetmek için
push esi // Bu registeri kaydetmek için
push edi // Bu registeri kaydetmek için
push ebp // Bu registeri kaydetmek için
push esp // Bu registeri kaydetmek için
lea eax,[eax-84]  // eax registerindeki adresi control etmek için windows apisine gönderiyorum burası kontrol etmek istediğim adrestir.
call cntr
cmp esi,0 // 0 Değeri böyle memory bile yok demek
je yapma
cmp esi,1 // 1 Değeri böyle memory var ama no acces erişim yok demek
je yapma
pop esp // Bu kaydettiğimiz registeri geri getirmek için
pop ebp // Bu kaydettiğimiz registeri geri getirmek için
pop edi // Bu kaydettiğimiz registeri geri getirmek için
pop esi // Bu kaydettiğimiz registeri geri getirmek için
pop edx // Bu kaydettiğimiz registeri geri getirmek için
pop ecx // Bu kaydettiğimiz registeri geri getirmek için
pop ebx // Bu kaydettiğimiz registeri geri getirmek için
pop eax // Bu kaydettiğimiz registeri geri getirmek için
cmp [eax-84],(int)176293393 // Ben classda  control yapıyorum, buradan bazen erişimi olmuyan bi yere eriştiğim için crash yiyorum bunu engelledim işte
je rcle
jmp hk
yapma:
pop esp // Bu kaydettiğimiz registeri geri getirmek için
pop ebp // Bu kaydettiğimiz registeri geri getirmek için
pop edi // Bu kaydettiğimiz registeri geri getirmek için
pop esi // Bu kaydettiğimiz registeri geri getirmek için
pop edx // Bu kaydettiğimiz registeri geri getirmek için
pop ecx // Bu kaydettiğimiz registeri geri getirmek için
pop ebx // Bu kaydettiğimiz registeri geri getirmek için
pop eax // Bu kaydettiğimiz registeri geri getirmek için
hk:
mov edx,[eax]
mov [ebp-2C],edx
jmp returnhere

pop esp // Bu kaydettiğimiz registeri geri getirmek için
pop ebp // Bu kaydettiğimiz registeri geri getirmek için
pop edi // Bu kaydettiğimiz registeri geri getirmek için
pop esi // Bu kaydettiğimiz registeri geri getirmek için
pop edx // Bu kaydettiğimiz registeri geri getirmek için
pop ecx // Bu kaydettiğimiz registeri geri getirmek için
pop ebx // Bu kaydettiğimiz registeri geri getirmek için
pop eax // Bu kaydettiğimiz registeri geri getirmek için
rcle:
mov [eax],0 // Hile için 0 değerini eax registerindeki adresin değerine yaz.
mov edx,[eax]
mov [ebp-2C],edx
jmp returnhere


cllcode:
push ebp
mov ebp,esp
sub esp,7C
lea eax,[ebp-08]
push eax
push 1C
lea ecx,[ebp-7C]
push ecx
push 00
mov edx,[ebp+08]
push edx
push -01 // Handlesi -01 gösteriyoruz böylece api bizim uygulamamızı tarıyor
call NtQueryVirtualMemory // Windows apisi
mov [ebp-0C],eax
mov eax,[ebp-68]
mov [ebp-04],eax
mov esi, eax// значение того, есть ли доступ
mov esp,ebp
pop ebp
отказ

кнтр:
push ebp
mov ebp,esp
mov [ebp-04],eax
mov eax,[ebp-04]
push eax
call cllcode
pop eax
pop ebp
отказ

mx1:
jmp newmem
returnhere: [/код]




Protect olmuyan = hex (00)
No acces olan = hex (01)
Read Only = hex (02)
Read wrıte = hex(04)
wrıte copy = hex (08)
execute = hex (10)
execute_read = hex (20)
execute_readwrıte = hex (40)
execute_writecopy = hex (80)




Если это не те толчки, которые я использую для сохранения реестра, который я добавил, то, скорее всего, повреждение регистров приведет к сбою этого приложения, когда он вернется к нашей функции после использования API Windows.


На данный момент я только что добавил его для архитектуры x86 в более поздние времена я бы добавил его для бит 64, пока до свидания

Это не цитата, нет ни одного другого источника в Интернете
[/QUOTE]
64 бит доход в ближайшее время
 
Onaylı Üye
Katılım
29 Haz 2020
Mesajlar
50
Çözümler
1
Tepki puanı
0
Ödüller
5
Yaş
27
5 HİZMET YILI
Thank you for everything . I will wait
 
Onaylı Üye
Katılım
30 Haz 2020
Mesajlar
65
Tepki puanı
0
Ödüller
2
Yaş
39
5 HİZMET YILI
zaman gelir abi bekliyoruz bu tarz bilgilendirmeleri sık paylaşırsan
 
Süper Üye
Katılım
26 Mar 2016
Mesajlar
776
Çözümler
6
Tepki puanı
274
Ödüller
11
10 HİZMET YILI
böyle şeyleri anlatan olmasıı hoş
 
3D Artist
Onaylı Üye
Katılım
6 Tem 2020
Mesajlar
64
Tepki puanı
2
Ödüller
6
5 HİZMET YILI
64 bit yolunu gözler bir vatandaş olmuşumdur :kaybear:
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst