• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

[ANLATIM]AutoIt'de Char Ismi okumak ve Bir Label'e Aktarmak

  • Konuyu başlatan Konuyu başlatan [GM]CarboN
  • Başlangıç tarihi Başlangıç tarihi

[GM]CarboN

Ilk once verileri analiz etmek icin offset finder i indiriyoruz

0ffsetfinder.exe

1-Char Ismini msgbox ile gostermek

Daha Sonra Yeni bir .au3 dosyasi olusturuyoruz.

Sonra dosyamiza 2 UDF (user defined functions yani kendi kodumuzu yazicaz ornegin run msgbox gibi) ekleyelim

Kod:
Func memopen($pid)
    Local $mid = DllCall('kernel32.dll', 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
    Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
    Local $struct = DllStructCreate($type)
    DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
    Return DllStructGetData($struct, 1)
EndFunc   ;==>memread
Bu kodu scriptimizin en altina yaziyoruz yani ustune daha kod yazacagiz.

Simdi sro_client in process'ini alalimki bilgiler scriptimizede gelsin.

Kod:
$list = WinList('[CLASS:CLIENT]');client listesini aldik
    For $i = 1 To $list[0][0] ; listeyi siraya koyduk
        $pid = WinGetProcess($list[$i][1]) ;1. sini sectik
        $mid = memopen($pid);tum bilgileri aktardik
bu yukardaki kodlarida scirptimizin ustune ekliyoruz

Su anda basari ile clientteki bilgileri scriptimize almayi basardik sira bu bilgilerden char name yi almak

-Offset finder i aciyoruz
-Gelen ekranda SRO_Client i seciyoruz.
adszv.png

-Sonra Offsetleri okumaya baslayacak.
-Offsetleri okumayi bitirdiginde Tum Offsetler yazicak bize CharName yazan lazim.Charname nin karsisindaki Offset i alacagiz
79795955.png

Ben rsro da yaptim offset bu : 0xE2A888 simdi bunu kullanalim

en son yazdigimiz kodun altina

Kod:
$nameoffset = 0xE2A888
$charismi = memread($mid, $nameoffset, 'char[12]')
MsgBox(0,"Char Ismi",$charismi)
Toplamda Son Kodumuz Boyle Olmali

Kod:
$list = WinList('[CLASS:CLIENT]');client listesini aldik
    For $i = 1 To $list[0][0] ; listeyi siraya koyduk
        $pid = WinGetProcess($list[$i][1]) ;1. sini sectik
        $mid = memopen($pid);tum bilgileri aktardik
$nameoffset = 0xE2A888
$charismi = memread($mid, $nameoffset, 'char[12]')
MsgBox(0,"Char Ismi",$charismi)
Next

Func memopen($pid)
    Local $mid = DllCall('kernel32.dll', 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
    Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
    Local $struct = DllStructCreate($type)
    DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
    Return DllStructGetData($struct, 1)
EndFunc   ;==>memread
=============================================================================================================

2- Char ismini label e aktarmak.

Oncelikle bir GUI yaratiryoruz (form)

Icine bir tane label ve bir tane button ekledik.

Kod:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 310, 162, 192, 124)
$Label1 = GUICtrlCreateLabel("Char Ismi", 16, 8, 87, 17)
$Button1 = GUICtrlCreateButton("Al", 24, 40, 89, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
Buttona Click olayimizi ekleyelim

Kod:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 310, 162, 192, 124)
$Label1 = GUICtrlCreateLabel("Char Ismi", 16, 8, 87, 17)
$Button1 = GUICtrlCreateButton("Al", 24, 40, 89, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
Case $button1
$isim = isimoku()
GUICtrlSetData($label1,$isim)   
EndSwitch
WEnd
button click olayimiza isimoku adli func a git dedik

simdi bu funcu scriptimize ekleyelim

Kod:
func isimoku()
$nameoffset = 0xE2A888
$list = WinList('[CLASS:CLIENT]')
    For $i = 1 To $list[0][0]
        $pid = WinGetProcess($list[$i][1])
        $mid = memopen($pid)
$nameoffset = 0xE2A888
$charismi = memread($mid, $nameoffset, 'char[12]')
Return $charismi
EndFunc
Son Olarak UDF mizi ekleyelim scriptimizin en altina:

Kod:
Func memopen($pid)
    Local $mid = DllCall('kernel32.dll', 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
    Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
    Local $struct = DllStructCreate($type)
    DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
    Return DllStructGetData($struct, 1)
EndFunc   ;==>memread
En Son Kodumuz Boyle Olumali

Kod:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 310, 162, 192, 124)
$Label1 = GUICtrlCreateLabel("Char Ismi", 16, 8, 87, 17)
$Button1 = GUICtrlCreateButton("Al", 24, 40, 89, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
Case $button1
$isim = isimoku()
GUICtrlSetData($label1,$isim)   
EndSwitch
WEnd

func isimoku()
$nameoffset = 0xE2A888
$list = WinList('[CLASS:CLIENT]')
    For $i = 1 To $list[0][0]
        $pid = WinGetProcess($list[$i][1])
        $mid = memopen($pid)
$nameoffset = 0xE2A888
$charismi = memread($mid, $nameoffset, 'char[12]')
Return $charismi
Next
EndFunc

Func memopen($pid)
    Local $mid = DllCall('kernel32.dll', 'int', 'OpenProcess', 'int', 0x1F0FFF, 'int', 1, 'int', $pid)
    Return $mid[0]
EndFunc   ;==>memopen

Func memread($mid, $adress, $type = 'dword')
    Local $struct = DllStructCreate($type)
    DllCall('kernel32.dll', 'int', 'ReadProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', '')
    Return DllStructGetData($struct, 1)
EndFunc   ;==>memread
 
Son düzenleme:
yaptım ama offset de yazdım isroda yinede isimi al dediğim zaman boşluk gösteriyor...
 
Biri OffsetFinder İndirme Link Verebilirmi Google'de Arattırdım Ama Çıkmadı
 
yemegi yedin masaüstünü topla kardeşim yenile nasıl yapıyorsun :D
 
Her şeyi geçtim de masaüstün ne öyle ya :D Düzen düzen :rbk:
 
herhangi bir programdan "autoit window info" ile nasıl veri çekebilirim. label'e yazı aktarmak istiyorum.
 
Geri
Üst