Salve ospite, se leggi questo messaggio vuol dire che non sei registrato, cosa aspetti ? Premi qui per registrarti La registrazione è completamente gratuita e ti permetterà di usufruire di tutte le funzionalità del nostro forum. Buona navigazione.


Vendo, Compro, Scambio NosTale! Riapre il Black Market, concludi i tuoi scambi NosTale gratuitamente! Più info  -   Accedi alla sezione
Download file Server : File Retro Server NosTale
Visita la nuova sezione di BorderGame dedicata a Blade & Soul! Sezione Blade and Soul

 
Valutazione discussione:
  • 6 voti - 2.17 media
  • 1
  • 2
  • 3
  • 4
  • 5
AutoIT: Sorgente packet logger [Beta Shadow992]
26-11-2012 07:40 PM
Messaggio: #1
AutoIT: Sorgente packet logger [Beta Shadow992]
scl
*
Utente Saggio

Inizio a capire

Messaggi : 249

Registrato dal : Nov 2012

Reputazione : 166

Stato : Offline


Premi :



Vi lascio due release di Shadow992, che ha donato in beneficenza al mondo Wink

Mirraccomando utilizzate la libreria CCInject!

Codice:
#include <CCInject.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiEdit.au3>
#include <ScrollBarConstants.au3>

Local $packets_recv[5000]
Local $address[1][3]
Local $old_opcode_recv
Local $found_recv,$activated=0

$address[0][0] = 0x0051CE08
$address[0][1] = "E8 ?? ?? ?? ?? 8B D0 8B 5D ?? 8B 4D ?? 8B 43 ?? FF 53 ?? EB ?? 8B 45"
$address[0][2] = -1

if Not ProcessExists("NostaleX.dat") Then
    MsgBox(0,"Error","Please start Nostale first.")
EndIf

While Not ProcessExists("NostaleX.dat")
    Sleep(111)
WEnd

$memopen = _MemoryManipulationOpen(ProcessExists("NostaleX.dat"))

$found_recv=_MemorySearchForBytes($memopen, $address[0][1], $address[0][0]-1000000, $address[0][0]+1000000)
$found_recv[0]=$found_recv[0]-$address[0][2]

$alloc_var=_AllocateMemoryForVariable($memopen)
$allocated_arr = _AllocateMemoryFor2DArray($memopen,Ubound($packets_recv),128,"char")

$asm_code = _CreateASM_CopyRegisterTo2DArrayEx($allocated_arr,$alloc_var,"edx")

Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Recv-Packets-Logger", 239, 401, 324, 218)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Edit1 = _GUICtrlEdit_Create($Form2,"", 8, 64, 225, 329,BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL,$ES_MULTILINE,$WS_TABSTOP))
$Button1 = GUICtrlCreateButton("Start", 8, 32, 105, 25)
GUICtrlSetOnEvent($Button1, "Button1Click")
$Button2 = GUICtrlCreateButton("Stop", 128, 32, 105, 25)
GUICtrlSetOnEvent($Button2, "Button2Click")
$Label1 = GUICtrlCreateLabel("...", 8, 8, 105, 16)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While ProcessExists("NostaleX.dat")
    Sleep(3000)
    if IsArray($old_opcode_recv) and $activated=1 Then
        $read=GUICtrlRead($Edit1)
        $temp1=""
        For $i=0 To Ubound($packets_recv)-1
            $packets_recv[$i]=_ReadMemory2DArrayString($memopen,$allocated_arr,$i)
            if $packets_recv[$i]<>chr(0) and $activated=1 Then
                _MemoryReset2DArray($memopen,$allocated_arr,$i)
                $temp1=$temp1&"["&@HOUR&":"&@MIN&":"&@SEC&"] "&$packets_recv[$i]&@CRLF
            EndIf
        Next
        _GUICtrlEdit_BeginUpdate($Edit1)
        $sel=_GUICtrlEdit_GetSel($Edit1)
        _GUICtrlEdit_AppendText($Edit1, $temp1)
        _GUICtrlEdit_SetSel($Edit1, $sel[0], $sel[1])
        _GUICtrlEdit_EndUpdate($Edit1)
        GUICtrlSetData($Label1,"Recv-Packets: "&_GUICtrlEdit_GetLineCount($Edit1))
    EndIf
WEnd

Func Button1Click()
    if NOT IsArray($old_opcode_recv) and $activated=0 Then
        $old_opcode_recv=_InjectASMAtAddress($memopen, $found_recv[0], 6, $asm_code)
        $activated=1
    EndIf
EndFunc

Func Button2Click()
    if IsArray($old_opcode_recv) and $activated=1 Then
        _MemoryBytesWrite($memopen,$found_recv[0],$old_opcode_recv[3])
        $activated=0
    EndIf
EndFunc

Func Form1Close()
    if IsArray($old_opcode_recv) Then
        _MemoryBytesWrite($memopen,$found_recv[0],$old_opcode_recv[3])
    EndIf
    Exit
EndFunc

Codice:
#include <CCInject.au3>
#include <Array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiEdit.au3>

Local $packets_recv[5000]
Local $packets_send[1000]
Local $address[2][3]
Local $old_opcode_recv,$old_opcode_send
Local $found_recv,$activated=0

$address[0][0] = 0x0051CE08
$address[0][1] = "E8 ?? ?? ?? ?? 8B D0 8B 5D ?? 8B 4D ?? 8B 43 ?? FF 53 ?? EB ?? 8B 45"
$address[0][2] = -1

$address[1][0] = 0x0051C969
$address[1][1] = "01 00 00 00 0A 00 00 00 53 56 8B F2"
$address[1][2] = 3


if Not ProcessExists("NostaleX.dat") Then
    MsgBox(0,"Error","Please start Nostale first.")
EndIf

While Not ProcessExists("NostaleX.dat")
    Sleep(111)
WEnd

$memopen = _MemoryManipulationOpen(ProcessExists("NostaleX.dat"))

$found_recv=_MemorySearchForBytes($memopen, $address[0][1], $address[0][0]-1000000, $address[0][0]+1000000)
$found_recv[0]=$found_recv[0]-$address[0][2]

$found_send=_MemorySearchForBytes($memopen, $address[1][1], $address[1][0]-1000000, $address[1][0]+1000000)
$found_send[0]=$found_send[0]-$address[1][2]

$alloc_var_recv=_AllocateMemoryForVariable($memopen)
$allocated_arr_recv = _AllocateMemoryFor2DArray($memopen,Ubound($packets_recv),128,"char")
$asm_code_recv = _CreateASM_CopyRegisterTo2DArrayEx($allocated_arr_recv,$alloc_var_recv,"edx")

$alloc_var_send=_AllocateMemoryForVariable($memopen)
$allocated_arr_send = _AllocateMemoryFor2DArray($memopen,Ubound($packets_send),128,"char")
$asm_code_send = _CreateASM_CopyRegisterTo2DArrayEx($allocated_arr_send,$alloc_var_send,"edx")

Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Packet-Logger", 606, 413, 161, 191)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Edit1 = _GUICtrlEdit_Create($Form2,"", 8, 72, 193, 337,BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL,$ES_MULTILINE,$WS_TABSTOP))
$Edit2 = _GUICtrlEdit_Create($Form2,"", 216, 72, 193, 337,BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL,$ES_MULTILINE,$WS_TABSTOP))
$Button1 = GUICtrlCreateButton("Start", 30, 32, 105, 25)
GUICtrlSetOnEvent($Button1, "Button1Click")
$Button2 = GUICtrlCreateButton("Stop", 270, 32, 105, 25)
GUICtrlSetOnEvent($Button2, "Button2Click")
$Button3 = GUICtrlCreateButton("Clear All", 150, 32, 105, 25)
GUICtrlSetOnEvent($Button3, "Button3Click")
$Label1 = GUICtrlCreateLabel("...", 8, 8, 193, 16)
$Label2 = GUICtrlCreateLabel("...", 216, 8, 193, 16)
$Label3 = GUICtrlCreateLabel("Filtered Packets", 416, 160, 80, 17)
$Label4 = GUICtrlCreateLabel("Packets to filter (uses RexEx)", 416, 8, 142, 17)
$Edit3 = GUICtrlCreateEdit("", 416, 32, 177, 121)
$Edit4 = _GUICtrlEdit_Create($Form2,"", 416, 184, 185, 225,BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL,$ES_MULTILINE,$WS_TABSTOP))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While ProcessExists("NostaleX.dat")
    Sleep(3000)
    if IsArray($old_opcode_recv) and $activated=1 Then
        $temp1=""
        $temp2=""
        $temp3=""
        $read=GUICtrlRead($Edit3)
        $splited=StringSplit($read,@CRLF,2)

        For $i=0 To Ubound($packets_recv)-1
            $packets_recv[$i]=_ReadMemory2DArrayString($memopen,$allocated_arr_recv,$i)
            if $packets_recv[$i]<>chr(0) and $activated=1 Then
                _MemoryReset2DArray($memopen,$allocated_arr_recv,$i)
                $temp1=$temp1&"["&@HOUR&":"&@MIN&":"&@SEC&"] "&$packets_recv[$i]&@CRLF
                if IsArray($splited) and $read<>"" Then
                    For $i2=0 To UBound($splited)-1
                        if $splited[$i2]<>"" and StringRegExp($packets_recv[$i], $splited[$i2])=1 Then
                            $temp3=$temp3&"{Recv: "&@HOUR&":"&@MIN&":"&@SEC&"} "&$packets_recv[$i]&@CRLF
                            ExitLoop
                        EndIf
                    Next
                endif
            EndIf
        Next
        For $i=0 To Ubound($packets_send)-1
            $packets_send[$i]=_ReadMemory2DArrayString($memopen,$allocated_arr_send,$i)
            if $packets_send[$i]<>chr(0) and $activated=1 Then
                _MemoryReset2DArray($memopen,$allocated_arr_send,$i)
                $temp2=$temp2&"["&@HOUR&":"&@MIN&":"&@SEC&"] "&$packets_send[$i]&@CRLF
                if IsArray($splited)  and $read<>"" Then
                    For $i2=0 To UBound($splited)-1
                        if $splited[$i2]<>"" and StringRegExp($packets_send[$i], $splited[$i2])=1 Then
                            $temp3=$temp3&"{Sent: "&@HOUR&":"&@MIN&":"&@SEC&"} " &$packets_send[$i]&@CRLF
                            ExitLoop
                        EndIf
                    Next
                EndIf
            EndIf
        Next
        _GUICtrlEdit_BeginUpdate($Edit1)
        $sel=_GUICtrlEdit_GetSel($Edit1)
        _GUICtrlEdit_AppendText($Edit1, $temp1)
        _GUICtrlEdit_SetSel($Edit1, $sel[0], $sel[1])
        _GUICtrlEdit_EndUpdate($Edit1)

        _GUICtrlEdit_BeginUpdate($Edit2)
        $sel=_GUICtrlEdit_GetSel($Edit2)
        _GUICtrlEdit_AppendText($Edit2, $temp2)
        _GUICtrlEdit_SetSel($Edit2, $sel[0], $sel[1])
        _GUICtrlEdit_EndUpdate($Edit2)

        _GUICtrlEdit_BeginUpdate($Edit4)
        $sel=_GUICtrlEdit_GetSel($Edit4)
        _GUICtrlEdit_AppendText($Edit4, $temp3)
        _GUICtrlEdit_SetSel($Edit4, $sel[0], $sel[1])
        _GUICtrlEdit_EndUpdate($Edit4)

        GUICtrlSetData($Label1,"Recv-Packets: "&_GUICtrlEdit_GetLineCount($Edit1))
        GUICtrlSetData($Label2,"Send-Packets: "&_GUICtrlEdit_GetLineCount($Edit2))
    EndIf
WEnd

Func Button1Click()
    if $activated=0 Then
        $old_opcode_recv=_InjectASMAtAddress($memopen, $found_recv[0], 6, $asm_code_recv)
        $old_opcode_send=_InjectASMAtAddress($memopen, $found_send[0], 5, $asm_code_send)
        $activated=1
    EndIf
EndFunc

Func Button2Click()
    if IsArray($old_opcode_recv) and $activated=1 Then
        _MemoryBytesWrite($memopen,$found_recv[0],$old_opcode_recv[3])
        _MemoryBytesWrite($memopen,$found_send[0],$old_opcode_send[3])
        $activated=0
    EndIf
EndFunc

Func Button3Click()
    _GUICtrlEdit_SetText($Edit1,"")
    _GUICtrlEdit_SetText($Edit4,"")
    _GUICtrlEdit_SetText($Edit2,"")
EndFunc

Func Form1Close()
    if IsArray($old_opcode_recv) Then
        _MemoryBytesWrite($memopen,$found_recv[0],$old_opcode_recv[3])
        _MemoryBytesWrite($memopen,$found_send[0],$old_opcode_send[3])
    EndIf
    Exit
EndFunc


Allegati
.zip  UDF_ccINJECT.zip (Dimensione: 6.27 KB / Download: 37)
per assistenza scrivimi su skype (contatto tramite pm) oppure taggami sul forum
(Questo messaggio è stato modificato l'ultima volta il: 26-11-2012 07:40 PM da scl.)
Torna al primo messaggio
Email Cerca Rispondi

PubblicitàLa tua pubblicità qui, clicca per informazioni e per le offerte!

Stanno visualizzando la discussione : 1 Ospite(i)

  • Versione stampabile
  • Invia ad un amico
  • Sottoscrivi questa discussione