PROGETTO ORIGINALE (SCRIVERE MEMORIA IN MSG SCRIPT)

Stato
Discussione chiusa ad ulteriori risposte.

xXStephXx

Utente Electrum
28 Aprile 2008
389
16
1
125
Salve ragazzi, io stavo provando proprio ieri le funzionalità di messenger plus live script.
Leggendo il tutorial sono arrivato all'object Call della classe Interop.
Secondo la funzione Interop::Call si possono chiamare tutte le librerie di sistema. E io diventai così: :dodgy::rulezmg:

Provai subito con una messageBox scrivendo
Codice:
Interop.Call("User32.dll", "MessageBoxW", 0, "ciao", "try", 0);
Vidi che fu cosa buona e giusta.... E la mia faccia diventò così: :blamg::conigliomg:


Allora pensai: ho il potere di modificare la memoria di un processo, e se facessi un cheat per Metin2 tramite msg plus???



Ebbene ecco il codice:

Codice:
// Include libraries
function OnEvent_Initialize(MessengerStart)
{
Interop.FreeDll("User32.dll");
Interop.FreeDll("Kernel32.dll");
}


//FindWindow Declaration
function FindWindow(nClass, nName)
{
Interop.Call("User32.dll", "FindWindowW",nClass, nName);
}



//MessageBox declaration
function MessageBox(Wnd, text, title, btn)
{
Interop.Call("User32.dll", "MessageBoxW", Wnd, text, title, btn);
}




function OnEvent_MyStatusChange(NewStatus)
{
if(FindWindow(0, "METIN2"))
{
MessageBox(0, "FOUND", "GOOD", 0);

}
else
MessageBox(0, "UNFOUND", "FUCK", 0);
}


Ovviamente non avrei aperto questa discussione se non ci fosse stato il PROBLEMA.
FindWindow non mi trova il processo e come potete vedere la dichiarazione è stata fatta così:
Codice:
function FindWindow(nClass, nName)
{
Interop.Call("User32.dll", "FindWindowW",nClass, nName);
}



Possibilità: Ho visto che su MessageBox si segue W MessageBoxW ma è possibile mettere anche A MessageBoxA.

Sulla FindWindow se metto FindWindow senza suffisso non la legge, se metto FindWindowW la legge e anche se metto A. Il problema è che in entrambi i casi non trova la finestra METIN2 anche se è aperto....



Due domande:

1-- Perdonatemi, qual è la differenza tra il suffisso W e A?
2-- Per far funzionare FindWindow è possibile mettere altri suffissi oltre W ed A?



A voi le risposte, XD
 
la W sta che WideChar (se non ricordo male, ma non è importante) ed indica che i caratteri sono identificati da 2 byte (tipo UTF-16, unicode, sempre se non è uno di questi^^).
la A sta per ASCII, quindi i classici caratteri di windows di 1 byte
 
premesso che non trovo adatto questo linguaggio a fare cheat,
io avevo scritto questo codice in VB net per trovare un processo e per esempio chiuderlo
Codice:
        Dim processes As Process() = Process.GetProcessesByName("calc")
        For Each p As Process In processes
            MsgBox("calcolatrice trovata")
            Dim pFoundWindow As IntPtr = p.MainWindowHandle
            MsgBox("ora la cihiudo")
            p.CloseMainWindow()
        Next

tradotto in C# (che non conosco) penso sia cosi
Codice:
{
    Process[] processes = Process.GetProcessesByName("calc");
    foreach (Process p in processes) {
        Interaction.MsgBox("calcolatrice trovata");
        IntPtr pFoundWindow = p.MainWindowHandle;
        Interaction.MsgBox("ora la cihiudo");
        p.CloseMainWindow();
    }
}

Predator
 
Ma non adatto è riferito a c# o al remake di javascript per msg plus?
Comunque il problema principlae è che se metto:
Codice:
Interop.Call("User32","FindWindowW, 0, "Metin2");
Non me lo trova asd e se ,metto FindWindow senza W mi da errore.
 
Stato
Discussione chiusa ad ulteriori risposte.