Esen.
Eğer dikkat ederseniz assembly altına koyduğum tüm örnekler aslında keygen/crack/patch gibi uygulamalar yazarken sıklıkla kullanılabilecek konuları içeriyor. Bunlardan bir tanesi de dizi metin işlemlerinden olan string-metinleri birleştirme. Ya da bir string dizisi içerisinde bir başla karakter/string bulma işlemleri olabiliyor.
lstrcat
lstrcat yordamı Windows 2000’den beri kernel’de olan bir yordamdır.
1 2 3 4 |
LPTSTR WINAPI lstrcat( _Inout_ LPTSTR lpString1, _In_ LPTSTR lpString2 ); |
Yordamı çalıştırdığımızda lpString2, lpString1’in sonuna ekleniyor. Burada önemli olan lpString1 değişkeninin iki değişkenide alacak büyüklükte olması. Aksi halde derleme hatası alıyoruz.
MASM32 Makroları
MASM32 kitaplığı içerisinde bir çok makro bulunmaktadır. Bunlar işlerimizi çok hızlandırır. add$, chr$ ve cat$ kullanaran hızlıca stringleri birleştirebiliriz.
1 2 3 |
invoke StdOut, chr$("1AC4","-","12FA","-","FE1C") print cat$(chr$(13, 10, "Stack/BP="), str$(esp), chr$("/"), str$(ebp), chr$(13,10)) mov eax, add$(addr strLine01,addr strLine02) |
En güzel öğrenme kodları kurcalarken olacağı için iki tane örnek kodu buraya bırakıyorum. İlkini ben yazdım. İkincisi ise assembly forumlarından alıp düzenledim.
[dm]151[/dm]
[dm]152[/dm]
Bol bol kod yazmayı unutmuyoruz. İyi geceler.
Comments of this post