放5天假期間..  嘗試做了好VB的東西

我最想做的讀記憶體還是學不會

只弄得出偵測遊戲有沒有運行..




我目前做到這樣...  (網路上找的)

這個是讀取踩地雷這個程式Address:1005194的Value

將它顯示在Label4上面

由於搞不董這程式碼是在做什麼..

只是照著複製過來

所以運行後Label4一直顯示不正確的數字



弄出正確的程式碼


以後我就做得出東西了..


有高能幫我看一下嗎?


謝謝


Private Sub Timer1_Timer()
Dim hwnd As Long
hwnd = FindWindow(vbNullString, "踩地雷")
If hwnd = 0 Then
Label2.Caption = "遊戲未運行"
Else
Label2.Caption = "遊戲已運行"
End If
spa = &H1005194
Label4.Caption = spa
End Sub
Private Function ncnr(lpADDress As Long) As Integer
   Dim hwnd As Long
    Dim pid As Long
    Dim pHandle As Long
    Dim spa As Long
        hwnd = FindWindow(vbNullString, "踩地雷")
    
GetWindowThreadProcessId hwnd, pid
pHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
ReadProcessMemory pHandle, lpADDress, ByVal VarPtr(ncnr), 4, 0&
CloseHandle hProcess

End Function


以下是宣告區

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long


UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

DLL,動態連結函式庫。
一般來說,他是裡面包著特定功能的檔案。
而使用方式,因檔而異。有些是注入,有些是可供其他程式調用。

VB->ActiveX DLL


UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

 

 

UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

我按照赤歇大做法
他的做法假如輸入0就無法動作
只能輸入1
赤歇大告訴我將interval設定為1
我設定為1後偵錯會有錯誤耶
他就說沒有定義的Sub什麼的
我timer1的程式碼是這樣子寫...
key1 = getVK_KeyCode(Combo1.Text)
Dim keytype As Long
Dim hwn As Long
hwn = FindWindow(vbNullString, "MapleStory")
keytype = MakeKeyLparam(key4, WM_KEYDOWN)
rundll32 "user32.dll", "PostMessageA", hwn, WM_KEYDOWN, key1, keytype
keytype = MakeKeyLparam(key4, WM_KEYUP)
rundll32 "user32.dll", "PostMessageA", hwn, WM_KEYUP,

PostMessage被檔了啊~
不知道用SendKeys會不會被偵測到~

UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

MapleGM只有keydown,沒有keyup。

我覺得是KeyPress而非keydown

UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

WINIO.DLL....
模擬硬體按鍵
還不錯
可以過HS


UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

我就拿 取消怪物死亡特效 來做解釋好了

WriteProcessMemory hProcess, ByVal &H4EADC3, &H3675, 2, 0&

以上轉好VB函數

WriteProcessMemory hProcess, ByVal &H4EADC3, &H367520&

紅=代碼前面00去掉

藍=AOB(請過來填寫例如36 75就寫成75 36)

綠=AOB數量

咖啡=是否為驗證 0=否  1=是


UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

按鍵精靈:除非你製作出能跟暗箭精靈一樣的軟體出來,否則你只是撰寫腳本,並非真正的寫程式製作外掛
楓之谷ME:除非你製作出能跟ME一樣修改遊戲的記憶體區段,否則只是使用數據本身沒什麼了不起,當然自行開發/製作新數據也算是程式設計(因為CE/ME/其他UCE都是使用組合語言,組合語言是一種低階的程式語言)


Windows API 是屬於 Windows 作業系統其中一部分的動態連結程式庫 ( DLL )。當你無法自行寫入對等程序時,就可使用它們來執行工作。


UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

有一些楓之谷外掛Visual C++寫成(例如:楓谷小子)

1.是用什麼方式讓那些功能產生效?

2.有自動按按鍵的功能,誰能給我那個的C++數據?

3.有快捷鍵(例如:按F1就會啟動)那種要怎麼寫?

感謝C++程式語言的高回答

 

UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()

1.我BCB 要開啟哪一種檔案? 
A:可以[file] -> [new] -> [unit],產生新的UNIT,將副程式加於最下方,
再將整個程式用下面的方式起來,以避免重覆include,不同檔案使用不
同的INCLUDEDFLAG。

#ifndef INCLUDEDFLAG1
#define INCLUDEDFLAG1
.....整個程式
#endif

2.副程式要否要先獨立編譯? 

A.在主程式include到的檔案,就會自動編譯

3.有基本步驟ㄇ? 簡單介紹可以嗎?

小範例-開啟影像raw data
#ifndef FILEFLAG
#define FILEFLAG
//--------------------------------------------------------------------
#include 
#include 
#include 
#pragma hdrstop

//--------------------------------------------------------------------

#pragma package(smart_init)
//-----------------Open Raw Data File---------------------------------
void openfile(char* filename,int width,int height,byte** img); //加這一行宣告很有用.


//--------------------Open File---------------------------------------

void openfile(char* filename,int width,int height,byte** img)
{
int i,filesize,x=0,y=0;
FILE *fp;
byte *data;

fp=fopen(filename,"rb");

filesize = width*height;
data=(byte*)malloc(sizeof(byte)*filesize);
fread(data,1,filesize,fp);
for(i=0 ; i {
    img[y][x++]=data;
    if(x==width)
    {
        y++;
        x=0;
    }
}

free(data);
fclose(fp);
}
//---------------End openfile-----------------------------------------
#endif




 為什麼要將副程式獨立出來呢?我個人覺得是為了讓程式共享,假設用bcb寫的
程式,寫得很精彩,數千行程式擠在bcb的主程式,當別人要引用你的程式時,還要
把程式找出來,複製貼上,有時程式碼還用到bcb的元件,如別人用的又不是bcb,
程式遇到bcb元件就沒輒囉,還要另外想辦法更改,實在是麻煩的一件事。
 所以程式盡量寫得不依賴應用程式(software independent),像影像處理的演
算法filter,sobel,DCT,wavelet就經常會使用,如果把它們寫成一個檔案來
引用,寫一支新的程式就不用重新再編寫這些演算法,直接include就可以囉。不
是很方便嗎?的程式就不用重新再編寫這些演算法,直接include就可以囉。不是很方便嗎?
 

UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()