Öğreticiler #1 | Python & Regex: Cennette Yapılmış Maç

Qgenays

Katılımcı Üye
20 Haz 2020
254
3
Los Santos
Bugün, normal ifadeleri kullanmaya ince bir giriş olacak. Metin dosyalarıyla çalışırken yapmak isteyeceğiniz en önemli şeylerden biri, belirli bilgi parçalarını çıkarmak ve bunları daha sonra çalışabileceğiniz şekilde depolamaktır. Düzenli ifadeler, ihtiyacınız olan veri parçalarını seçmenize yardımcı olur ve python, bu bilgileri programlı bir şekilde kullanmak için size bir yapı sağlar.

Birçok kişi size normal ifadelerin ph33r olduğunu söyleyecektir. Düzenli ifadelerin, karakter başına ne kadar içlerine konulduğu açısından gerçekten yoğun olabileceği doğrudur. Bununla birlikte, temel durumlarla başlayarak ve yolumuza devam ederek hiç kimse normal ifadeden korkmamalı.

Birkaç uyarı: Bu, regex veya python için kapsamlı bir kılavuz değildir, ancak elinizdeki yapı ve araçlar hakkında size bir fikir verecektir.


Desen Eşleştirme

Yorumlayıcıda başlayacağız çünkü bize test durumlarını hızlıca çalıştırabileceğimiz ve kullanmak istediğimiz modüller ve işlevler için temel yardım alabileceğimiz bir arayüz sağlıyor.

İlk önce yorumlayıcıya bir göz atalım, yeniden içe aktaralım (regex’e erişim sağlayan python modülüdür) ve temel yardım almaya bir göz atalım.

Kod:
Root @ Trident : ~ / Masaüstü # python
Python 2.7.3 (varsayılan, 2 Ocak 2013, 13:56:14) 
Linux2 üzerinde [GCC 4.7.2]
Daha fazla bilgi için “yardım”, “telif hakkı”, “kredi” veya “lisans” yazın.
>>>
# Normal ifadelerle ilgilenen python modülü olan “re” yi içe aktarıyoruz. 
>>> yeniden içe aktar
>>>
# “dir ()”, ne tür işlevler çağırabileceğimizi listelememizi sağlar. 
>>> dir (yeniden)
[“HATA AYIKLA”, “DOTALL”, “I”, “IGNORECASE”, “L”, “LOCALE”, “M”, “MULTILINE”, “S”, “Scanner”, “T”, “TEMPLATE”,
‘U’, ‘UNICODE’, ‘VERBOSE’, ‘X’, ‘_MAXCACHE’, ‘__all__’, ‘__builtins__’, ‘__doc__’, ‘__dosya__’, ‘__name__’,
‘__package__’, ‘__version__’, ‘_alphanum’, ‘_cache’, ‘_cache_repl’, ‘_compile’, ‘_compile_repl’,
‘_expand’, ‘_pattern_type’, ‘_pickle’, ‘_subx’, ‘compile’, ‘copy_reg’, ‘error’, ‘escape’, ‘findall’,
‘bulucu’, ‘eşleşme’, ‘temizleme’, ‘arama’, ‘ayırma’, ‘sre_compile’, ‘sre_parse’, ‘alt’, ‘subn’, ‘sys’, 
‘şablon’]
>>>
>>> dir (yeniden arama)
[‘__cagri__’, ‘__class__’, ‘__closure__’, ‘__code__’, ‘__defaults__’, ‘__delattr__’, ‘__dict__’, ‘__doc__’,
‘__format__’, ‘__get__’, ‘__getattribute__’, ‘__globals__’, ‘__hash__’, ‘__init__’, ‘__module__’,
‘__name__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’,
‘__subclasshook__’, ‘func_closure’, ‘func_code’, ‘func_defaults’, ‘func_dict’, ‘func_doc’, ‘func_globals’,
‘func_name’]
>>>
# “help ()” ayrıca belirli bir işlev için bize kısa bir yardım sağlayacaktır. 
>>> yardım (yeniden arama)
Modülde işlev arama yardımı:

Arama (desen, dize, bayraklar = 0)
    Kalıpla eşleşme arayarak dizeyi tarayın, geri dönün
    Bir eşleşme nesnesi veya eşleşme bulunmadıysa.
(SON)



Normal ifadelerle ilk adımlarımızı atmanın zamanı geldi. İlk bakacağımız şeyler “.” (nokta) “\” ve “r”. Hayatımızı kolaylaştırmak için yorumlayıcıda küçük bir işlevi doğrudan tanımlayacağız. Sonunda, içinde tüm test durumlarının bulunduğu bir python betiği sunacağım, böylece onları gözden geçirebilirsiniz.

Tanım:
. (nokta) – Yeni satır dışında herhangi bir karakterle eşleşir.
\ (ters eğik çizgi) – Belirli karakterlerin harfi harfine yorumlanmasına izin verir.
R ‘’ – Modelin başına “r” eklemek, kelimenin tam anlamıyla yorumlanmasını sağlar. Bunun hakkında çok fazla düşünmemize gerek yok, sadece tüm kalıplarımıza ekleyeceğiz.

Kod:
>>>
 # Bu küçük “bul” işlevi iki argüman alır “pat” = regex kalıbı ve “text” = string we
  Aranıyor. İşlev, eşleşmeyi veya “Bulunamadı!” Değerini döndürür. 
>>> def find (pat, text): 
...     match = re.search (pat, text) 
...     eşleşirse: 
...             print match.group () 
...     else: 
...             print ‘Değil Bulundu!’
>>>
# Bu durumda “... y”, “eeey” ile eşleşir. 
>>> find (r ‘... y’, ‘Say heeey’)
Eeey
>>>
# Bu durumda “Bulunamadı!” çünkü eşleşmenin tam olması gerekiyor. 
>>> find (r ‘... ys’, ‘Say heeey’)
Bulunamadı!
>>>
# Bu, “eeey” ve “vwxy” ile eşleşir ancak yalnızca ilk eşleşmeyi döndürür. 
>>> find (r ‘... y’, ‘Say heeey veya daha iyisi vwxy’)
Eeey
>>>
# Bu “vwxy” ile eşleşir. 
>>> bul (r’v..y ‘,’ heeey veya daha iyisi vwxy de ‘)
Vwxy
>>>
# Eğer gerçekten “” ile eşleşmek istiyorsak. (nokta) bir “\” (ters eğik çizgi) ile ondan kaçmalıyız. 
>>> find (r ‘. \ .. y’, ‘Say hee.ey’) 
e.ey



Şimdiye kadar her şey yolunda, karışıma biraz daha normal ifade ekleme zamanı. Bir sonraki bakacağımız şey “\ w”, “\ d”, “\ s” ve “+” operatörüdür.

Tanım:
\ w – Biraz yanıltıcı olan ancak alfasayısal ve alt çizgi içeren herhangi bir “kelime” karakteriyle eşleşir.
\ d – Herhangi bir rakamla eşleşir.
\ s & \ S - \ s beyaz boşlukla ve \ S boşluk olmayan herhangi bir karakterle eşleşir.
+ Operatör – Bir normal ifade operatörüne “+” eklemek, bu operatör türünden bir veya daha fazlasını gösterir (örneğin: \ w +, kelime olmayan bir karaktere ulaşana kadar kelime karakterleriyle eşleşir).

Kod:
>>>
 # “:” ve üç kelime karakteriyle eşleşir. 
>>> find (r ‘: \ w \ w \ w’, ‘liste: kedi köpek balığı!’)
:kedi
>>>
# “:” Ve üç basamakla eşleşir. 
>>> bul (r ‘: \ d \ d \ d’, ‘bla: 123xxx’)
: 123
>>>
# Bu, ilk “b” + \ w \ w \ w ile başlayan “bob baker” ile eşleşir, bu örnek tamamen abartılıdır ancak
  Amacı. 
>>> bul (r’b \ w \ w \ s \ w \ w \ w \ w \ w ‘,’ bu bob baker ‘)
Bob baker (fırıncı)
>>>
# Burada “+” operatörü, rastgele miktarda boşlukla eşleşir. 
>>> bul (r ‘\ d \ s + \ d \ s + \ d’, ‘1 2 3’)
1 2 3
>>>
# Benzer şekilde “+” operatörü, rastgele bir “kelime” miktarını eşleştirerek önceki kalıbımızı basitleştirmeye yardımcı olur
  Karakterler. 
>>> bul (r’b \ w + \ s \ w + ‘,’ bu bob baker ‘)
Bob baker (fırıncı)
>>>
# Son bir örnek olarak, kalıp “:” ve keyfi miktarda “kelime” karakteriyle eşleşir. 
>>> find (r ‘: \ w +’, ‘bla bla: sweet ow snap’) 
: tatlı



Tamam, şimdi basit kalıpları seçebiliriz, sonra [] ve () ‘ye bakacağız.

Tanım:
[] – [], sırayı bilmemize gerek kalmadan eşleştirebileceğimiz bir dizi karakter belirlememize izin verir.
() – Kalıbımıza () eklemek, ilgilendiğimiz kalıbın bir parçasını veya parçalarını seçmemizi sağlar.

Kod:
>>>
 # Bu durumda “http” ile keyfi miktarda iki nokta üst üste işareti, eğik çizgi, “kelime” ile eşleşiyoruz
  Karakterler ve noktalar. Burada dikkat edilmesi gereken en önemli şey, karakterlerin eşleştirilebilmesidir.
  Herhangi bir sipariş ve bu “.” (nokta) bu durumda tam anlamıyla nokta olarak yorumlanır. 
>>> bul (r’http [: / \ w.] + ‘,’ <a href=http://sample_url.here> Burayı tıklayın! </a> ‘)
[url]http://sample_url.here[/url]
>>>
# Öncekine benzer teknikler kullanmak, e-posta adreslerini seçer. 
>>> bul (r ‘[\ w.] + @ [\ w.] +’, ‘önemsiz [email][email protected][/email] snap @’)
[email][email protected][/email]
>>>
# Önceki örneğimizin arkasında, () parantezleri kullanarak birinci ve ikinci kısımları seçiyoruz
  Email adresi. 
>>> x = re.search (r ‘([\ w.] +) @ ([\ w.] +)’, ‘önemsiz [email][email protected][/email] snap @’)
>>>
# Seçtiğimiz tüm eşleşmeyi veya tek tek parçaları yazdırabiliriz. 
>>> x.group () yazdır
[email][email protected][/email]
>>> x.group yazdır (1)
Total.ph33r
>>> x.group yazdır (2)
Offsec.com
>>>
# Şimdiye kadar sadece ilk eşleşmeyi döndüren re.search kullanıyorduk, ancak re.findall’ı da kullanabiliriz
  Hangi tüm maçları döndürecektir. 
>>> x = yeniden arama (r ‘[\ w.] + @ [\ w.] +’, ‘bla [email][email protected][/email] snap @ [email][email protected][/email]’)
>>>
# “X” yazdırıldığında bir eşleşme listesi döndürülür. 
>>> x yazdır
[‘[email protected]’, ‘[email protected]’]
>>>
# Şimdi birden fazla eşleşme üzerinden modelin parçalarını seçiyoruz. 
>>> x = yeniden arama (r ‘([\ w.] +) @ ([\ w.] +)’, ‘bla [email][email protected][/email] snap @ [email][email protected][/email]’)
>>>
# Bu bir demet listesi döndürür. 
>>> x 
[(‘total.ph33r’, ‘offsec.com’), (‘foo’, ‘bar.com’)] yazdır



Şimdi iyi bir kalıp eşleştirme yapabiliriz. Sunmak istediğim son bir şey var, normal ifade iddiaları.

Tanım:
Pozitif ilerleme a (? = B) – “a” işaretinin ardından “b” gelir.
Negatif ilerleme a (?! B) – “a” işaretinin ardından “b” gelmiyor.
Geriye pozitif bak (? <= A) b – “b” nin önünde “a” olup olmadığını kontrol edin.
Geriye negatif bak (? <! A) b – “b” nin önünde “a” olup olmadığını kontrol edin.
İnceleme (? =. * A) – Eşleşme içinde “a” olup olmadığını kontrol edin.

Normal ifade test durumlarının her birinin ayrı bir if ifadesi vardır, bu nedenle bunları yorumlayıcıda yapmak pratik olmaz.

?
Kod:
#!/usr/bin/python

# . (dot) finds any character except newline
# \w any word character (letters, digits, underscore)
# \d any digit
# \s whitespace
# \S all non-whitespace
# + one or more of that
# * zero or more of that
# r’pat’ send pattern in raw format (no formatting)
# [] define set of allowed characters (inside [] . == raw dot)
# () pick out the parts that we care about
# (?= string) Positive lookahead
# (?! String) Negative lookahead
# (?<= string) Positive lookbehind
# (?<! string) Negative lookbehind
# (?=.* string) Is the string present

İmport re

Def find(pat, text):
    Match = re.search(pat, text)
    İf match:
        Print match.group()
    Else:
        Print ‘Not found!’


Def main():

    Print “Using our find function:”
    Print “--------------------------------------------------“
    Find(‘...y’, ‘Say heeey’) #finds ‘eeey’
    Find(‘...ys’, ‘Say heeey’) #finds ‘Not Found!’
    Find(‘...y’, ‘Say heeey or even better vwxy’) #finds ‘eeey’
    Find(‘v..y’, ‘Say heeey or even better vwxy’) #finds ‘vwxy’
    Find(‘..yz’, ‘Say heeey or even better vwxyz’) #finds ‘wxyz’
    Find(r’.\..y’, ‘Say hee.ey’) #finds ‘e.ey’
    Find(r’:\w\w\w’, ‘list :cat dog fish!’) #finds ‘:cat’
    Find(r’:\d\d\d’, ‘bla :123xxx’) #finds ‘:123’
    Find(r’b\w\w\s\w\w\w\w\w’, ‘this is bob baker’) #finds ‘bob baker’
    Find(r’\d\s+\d\s+\d’, ‘1   2     3’) #finds ‘1   2     3’
    Find(r’b\w+\s\w+’, ‘this is bob baker’) #finds ‘bob baker’
    Find(r’:\w+’, ‘bla bla :sweet ow snap’) #finds ‘:sweet’
    Find(r’:\S+’, ‘bla bla :kitten&a=123&test hello’) #finds ‘:kitten&a=123&test’
    Find(r’http[:/\w.]+’, ‘<a href=http://sample_url.here>Click here!</a>’) #finds ‘[url]http://sample_url.here’[/url]
    Find(r’[\w.]+@[\w.]+’, ‘junk [email][email protected][/email] snap @ ‘) #finds ‘[email protected]’


    Print “”
    Print “Using re.search:”
    Print “--------------------------------------------------“
    X = re.search(r’([\w.]+)@([\w.]+)’, ‘junk [email][email protected][/email] snap @ ‘) # ‘total.ph33r’ and ‘offsec.com’
    Print x.group()  #returns ‘[email protected]’
    Print x.group(1) #returns ‘total.ph33r’
    Print x.group(2) #returns ‘offsec.com’


    Print “”
    Print “Using re.findall:”
    Print “--------------------------------------------------“
    X = re.findall(r’[\w.]+@[\w.]+’, ‘bla [email][email protected][/email] snap @ [email][email protected][/email] ‘) #returns list
    Print x  # returns [‘[email protected]’, ‘[email protected]’]
    X = re.findall(r’([\w.]+)@([\w.]+)’, ‘bla [email][email protected][/email] snap @ [email][email protected][/email] ‘) #returns list of tuples
    Print x  # returns [(‘total.ph33r’, ‘offsec.com’), (‘foo’, ‘bar.com’)]


    Print “”
    Print “Regex Assertions:”
    Print “--------------------------------------------------“

    Week_d = ‘Monday Tuesday Wednesday Thursday friday Saturday Sunday’

    # Monday is followed by Tuesday
    Expression = re.compile(r’monday\s(?=Tuesday)’)
    İf expression.search(week_d):
        Print ‘Positive lookahead!’

    # Monday is not followed by Friday
    Expression = re.compile(r’monday\s(?!friday)’)
    İf expression.search(week_d):
        Print ‘Negative lookahead!’

    # Thursday is preceded by Wednesday
    Expression = re.compile(r’(?<=Wednesday)\sthursday’)
    İf expression.search(week_d):
        Print ‘Positive lookbehind!’

    # Thursday is not preceded by Tuesday
    Expression = re.compile(r’(?<!Tuesday)\sthursday’)
    İf expression.search(week_d):
        Print ‘Negative lookbehind!’

    # String contains Sunday
    Expression = re.compile(r’(?=.*Sunday)’)
    İf expression.search(week_d):
        Print ‘There is a Sunday!’


    Print “”
    Print “Extended options dir(re):”
    Print “--------------------------------------------------“
    Print dir(re)
    # eg => re.findall(r’h\w+’, ‘Hey hola Hello’, re.IGNORECASE) # [‘Hey’, ‘hola’, ‘Hello’]

Main()


Belirli kalıplara bağlı metin dosyalarınız veya dizeleriniz varsa, normal ifadeler bu verileri incelemek ve ihtiyacınız olan bitleri hızlıca çıkarmak için harika araçlardır. Arka uçtaki python ile, hedeflerinize ulaşmak için bu verileri programlı bir şekilde kolayca kullanabilirsiniz.

Jamie Zawinski’nin şu sözünü aklınızda tutun:
Bazı insanlar bir sorunla karşılaştıklarında
“Biliyorum, normal ifadeler kullanacağım” diye düşünüyorlar . Şu an iki problemleri var.

Regex güçlüdür ancak kendinizi ayağınıza vurmayın, ihtiyaçlarınıza uygun olduğunda kullanın !!

Kullanım / Uygulama

Size daha az kullanışlı olmayan ve regex alıştırması yapmanıza izin verecek çok basit bir kullanım durumu sunarak bu öğreticiyi bitirmek istiyorum (daha ne isteyebilirsiniz).

Herhangi bir (ciddi) Geri Dönüş Odaklı Programlama (ROP) yaptıysanız, genellikle orada herhangi bir “hazır” çözüm olmadığını bileceksiniz. Büyük olasılıkla, aradığınızı bulmak için gadget’ları gözden geçirmek için çok zaman harcayacaksınız.

Tecrübelerime göre, ROP araçlarının temel bir ham listesini elde etmek için en kullanışlı araç mona(Corelan’dan bir hata ayıklayıcı eklentisi). Öyle olsa bile, özel ROP zincirleri oluşturuyorsanız ve 20 binlik bir listede çok özel talimatlar bulmanız gerekiyorsa, kesinlikle dünyanın hehe’yi bitirdiğini düşündüğünüz anlar olacaktır. ROP aygıtları belirli kalıpları takip eder, ancak çoğu zaman basit aramalarla verimli bir şekilde eşleştirilemezler. Bu, tonlarca işe yaramaz sonuç ve migrenle sonuçlanır. Neyse ki bizim için regex çok daha iyi kalıp eşleştirme yapmamızı sağlıyor.

Aşağıdaki 17 satır python, size zaman ve aspirin tabletlerinden tasarruf etmenizi sağlar. Komut dosyası iki komut satırı bağımsız değişkeni, bir metin dosyası ve bir normal ifade kalıbı alır. Unutulmaması gereken birkaç şey (1) Bunu mona çıktı dosyalarıyla çalışmak için biçimlendirdim ve (2) araçlar genellikle daha az karmaşık olduğundan, eşleşmeleri uzunluklarına göre sıraladıkça daha kısa sürede harikalar yaratır.

Kod:
#!/usr/bin/python

İmport sys, re

Def regex(rop):

    Gadget = open(rop, ‘rU’)
    Text = re.findall(r’.+’ + sys.argv[2] + ‘.+RETN’ , gadget.read())

    For x in sorted(text, key=len):
        Print x

Def main():

    Regex(sys.argv[1])

Main()


Aşağıda test amaçlı örnek bir ROP listesi ve birkaç arama ekledim, böylece komut dosyasının nasıl çalıştığı hakkında bir fikir edinebilirsiniz. MSVCR71.dll

- Raw_rop.txt

Bunların sadece basit aramalar olduğunu unutmayın, ancak en nadir talimatları bulmak için tüm normal ifadeleri de kullanabilirsiniz. Ayrıca aşağıdaki çıktıyı sadece birkaç sonuçla sınırlandırdım, ancak çoğu arama tonlarca eşleşme döndürüyor.

Kod:
Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘PUSH ESP. + POP’
0x7c372f4f: # PUSH ESP # AND AL, 10 # MOV DWORD PTR DS: [EDX], ECX # POP ESI # RETN
0x7c34969e: # PUSH ESP # MOV AL, BYTE PTR DS: [C68B7C37] # POP ESI # POP EBX # RETN
0x7c37591f: # PUSH ESP # ADD CH, BL # INC EBP # OR AL, 59 # POP ECX # POP EBP # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘ESP EKLE, .. \ s #’
0x7c352007: # ESP EKLE, 0C # RETN
0x7c352041: # ESP EKLE, 0C # RETN
0x7c35f9a0: # ESP EKLE, 2C # RETN
0x7c35207e: # ESP EKLE, 0C # RETN
0x7c3520bd: # ESP EKLE, 0C # RETN
0x7c3440be: # ESP EKLE, 14 # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘MOV \ s \ w +, DWORD PTR DS: \ [EAX \]’
0x7c3530ea: # MOV EAX, DWORD PTR DS: [EAX] # RETN
0x7c3413aa: # MOV EAX, DWORD PTR DS: [EAX] # PUSH EAX # RETN
0x7c35a000: # MOV EAX, DWORD PTR DS: [EAX] # EKLE EAX, ECX # RETN
0x7c359fff: # POP ESI # MOV EAX, DWORD PTR DS: [EAX] # EKLE EAX, ECX # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘XCHG’
0x7c348b05: # XCHG EAX, ESP # RETN
0x7c36c652: # XCHG EAX, EDI # PUSH ESP # STD # DEC ECX # RETN
0x7c341cae: # XCHG EAX, ESP # PUSH ES # ADD BYTE PTR DS: [EAX], AL # RETN
0x7c3413a9: # XCHG EAX, ESP # MOV EAX, DWORD PTR DS: [EAX] # PUSH EAX # RETN
0x7c342643: # XCHG EAX, ESP # POP EDI # BYTE PTR EKLE DS: [EAX], AL # POP ECX # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘KERNEL’
0x7c355c63: # ADC EAX, <& KERNEL32.Beep> # RETN
0x7c355c54: # ADC EAX, <& KERNEL32.Sleep> # RETN
0x7c341a0f: # ADC EAX, <& KERNEL32.TlsAlloc> # RETN
0x7c35f575: # ADC EAX, <& KERNEL32.LoadLibraryA> # RETN
0x7c355c61: # OR BH, BH # ADC EAX, <& KERNEL32.Beep> # RETN
0x7c34ade7: # ADC EAX, <& KERNEL32.HeapFree> # POP ESI # RETN
0x7c341a0d: # ADD BH, BH # ADC EAX, <& KERNEL32.TlsAlloc> # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘POP. + POP. + POP’
0x7c374011: # POP ECX # POP ESI # POP EBP # RETN
0x7c37606c: # POP EDI # POP ESI # POP EBX # RETN
0x7c3660e2: # POP EDI # POP ESI # POP EBX # RETN
0x7c3761a5: # POP EDI # POP ESI # POP EBX # RETN
0x7c342301: # POP EDI # POP ESI # POP EBP # RETN
0x7c35437b: # POP EDI # POP ESI # POP EBP # RETN
0x7c350389: # POP ESI # POP EBX # POP EBP # RETN
[... Snip ...]

Root @ Trident : ~ / Masaüstü # ./regROP.py raw_rop.txt ‘XOR \ sEAX, EAX. + INC \ sEAX’
0x7c364045: # XOR EAX, EAX # INC EAX # RETN
0x7c364071: # XOR EAX, EAX # INC EAX # RETN
0x7c358077: # XOR EAX, EAX # INC EAX # RETN
0x7c36409d: # XOR EAX, EAX # INC EAX # RETN
0x7c3480c1: # XOR EAX, EAX # INC EAX # RETN
0x7c3640e7: # XOR EAX, EAX # INC EAX # RETN
0x7c34810b: # XOR EAX, EAX # INC EAX # RETN
0x7c354146: # XOR EAX, EAX # INC EAX # RETN
[... Snip ...]

Source: https://www.fuzzysecurity.com/tutorials/15.html
Translators: Qgenays
M3m0ry
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.