青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小明思考

高性能服務器端計算
posts - 70, comments - 428, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

為英雄無敵3寫個游戲修改器

Posted on 2005-12-19 11:37 小明 閱讀(17131) 評論(7)  編輯 收藏 引用 所屬分類: Win32Game Development
我是比較鐵桿的英雄無敵3的fans,在網上看到這樣的文章:http://game.china.com/zh_cn/play/10002765/20021113/11362720.html

就是讓我方英雄學會所有技能,真的蠻爽的
學會28項技能修改法
heroes3.jpg

  首先,把你的英雄的士兵調到前面幾格來,接著用FPE來搜索。例如你的士兵數:第一格3,第二格14,第三格4,那么就用 3,0,14,0,4,0 來搜索,就可以找到地址。顯示為:
  士兵種類- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
   FF FF FF FF FF FF FF FF FF FF FF FF 03 00 00 00-士兵數量
   0E 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08
   09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   25 26 27 28 01 02 03 04 05 06 07 08 00 00 00 00
   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   04 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
   FF或00作為一格,每4格是代表一種屬性,物品, 狀態等等。前面28格是士兵的種類,接下來28格是士兵的數量。例如: 英雄可帶7種士兵,你要每種都是天使,那么把
   03 00 00 00 前面的FF FF FF FF 改為0D 00 00 00。 如果你要數量100, 那么把
   03 00 00 00 改為64 00 00 00。 士兵的種類是這樣分的:00 00 00 00 是槍兵,
   01 00 00 00 是 進化一級的槍兵,02 00 00 00 是弓箭手,03 00 00 00 是神箭手。
   如此類推。
  
   從03那一格開始數,28格后就是英雄的技能等級,接著的28格是英雄的技能,
   也就是從01到28代表的是英雄的技能等級,技能等級最多只能是3。
   01 箭術等級 02 尋路術等級 03 后勤學等級
   04 偵察術等級 05 外交術等級 06 航海術等級
   07 領導術等級 08 智慧術等級 09 神秘術等級
   10 幸運術等級 11 彈道術等級 12 鷹眼術等級
   13 招魂術等級 14 理財術等級 15 火系魔法等級
   16 氣系魔法等級 17 水系魔法等級 18 土系魔法等級
   19 學術等級 20 戰術等級 21 炮術等級
   22 學習能力等級 23 進攻術等級 24 防御術等級

但是每次使用FPE真的很麻煩,我又是很懶的人。FPE可以做到的事情,我也可以做到。
其實游戲修改不過是使用ReadProcessMemoryWriteProcessMemory

花了半天不斷的試驗,終于寫出一個可以用于英雄無敵3.1版的修改器,沒有寫界面(I'm lazy-:)),運行之后就是讓我方英雄學會所有技能。

#include <windows.h>
#include 
<tlhelp32.h>
#include 
<cstdio>

const char MODULE_NAME[] = "Heroes3.exe";

void printError( TCHAR* msg )
{
    DWORD eNum;
    TCHAR sysMsg[
256];
    TCHAR
* p;
    
    eNum 
= GetLastError( );
    FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM 
| FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL, eNum,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
// Default language
        sysMsg, 256, NULL );
    
    
// Trim the end of the line and terminate it with a null
    p = sysMsg;
    
while( ( *> 31 ) || ( *== 9 ) )
        
++p;
    
do { *p-- = 0; } while( ( p >= sysMsg ) &&
        ( ( 
*== '.' ) || ( *< 33 ) ) );
    
    
// Display the message
    printf( "WARNING: %s failed with error %d (%s)\n", msg, eNum, sysMsg );
}


DWORD findProcessId(
const char *module)
{
    DWORD result 
= -1;
    HANDLE hProcessSnap;
    
    
// Take a snapshot of all processes in the system.
    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    
if( hProcessSnap == INVALID_HANDLE_VALUE )
    {
        printError( 
"CreateToolhelp32Snapshot (of processes)" );
        
return result;
    }
    
    PROCESSENTRY32 pe32;
    
// Set the size of the structure before using it.
    pe32.dwSize = sizeof( PROCESSENTRY32 );
    
    
// Retrieve information about the first process,
    
// and exit if unsuccessful
    if!Process32First( hProcessSnap, &pe32 ) )
    {
        printError( 
"Process32First" );  // Show cause of failure
        CloseHandle( hProcessSnap );     // Must clean up the snapshot object!
        return result;
    }
    
    
// Now walk the snapshot of processes, and
    
// display information about each process in turn
    do
    {
        
if(stricmp(pe32.szExeFile,module)==0)
        {
            printf( 
"find process:  %s\n", module );
            result 
= pe32.th32ProcessID;
            
break;
        }
        
    } 
while( Process32Next( hProcessSnap, &pe32 ) );
    
    CloseHandle( hProcessSnap );
    
return result;
}

int main(int argc,char *argv[])
{
    DWORD h3pid 
= -1;
    
    h3pid 
=  findProcessId(MODULE_NAME);
    
if(h3pid == -1)
    {
        printf(
"can't find %s in memory,please make sure the program started!\n",MODULE_NAME);
        
return 1;
    }

    HANDLE h3 
= OpenProcess( PROCESS_ALL_ACCESS, FALSE, h3pid );
    
if( h3 == NULL )
    {
      printError( 
"OpenProcess" );
      
return 1;
    }

    unsigned 
long sideOffset=0x824994;
    unsigned 
char side = 0xff;
    
if(!ReadProcessMemory(h3,(LPCVOID)sideOffset,&side,1,0)) //查找我方的顏色
    {
        printError( 
"ReadProcessMemory" );
        
return 1;
    }

    
if(side!=0xff)
    {
        printf(
"find current side:%d\n",(int)side);
    }
    
else
    {
        printf(
"can't find current side\n");
        side 
= 0;
    }

    unsigned 
long heroBaseAddress = 0x15216ab;  //hero name start
    unsigned char name[20]={0};
    unsigned 
long temp = heroBaseAddress-1;

    
char b[28]; //28種技能
    
int size = sizeof(b);
    memset(b,
3,size);
    b[
12]=0;//不學招魂術

    
for(int i=0;i<=155;++i) //一共156個Hero
    {
        
if(!ReadProcessMemory(h3,(LPCVOID)temp,name,sizeof(name),0))
        {
            printError( 
"ReadProcessMemory" );
            
return 1;
        }
        
if(name[0]==side)
        {
            printf(
"find:%s\t",name+1);
            
if(!WriteProcessMemory(h3,(LPVOID)(temp+0xA7),b,size,0))
            {
                printError( 
"WriteProcessMemory" );
                
return 1;
            }
            
else
            {
                printf(
"update skill sucess!\n");
            }
        }
        temp 
+= 0x492;
    }

    CloseHandle(h3);
    
return 0;
}


附加:
讓我方英雄所有英雄學會除了招魂術的以外的27種技能的小程序

以前英雄世界也有一個這樣的程序,但是版本太老,不能用了。

使用版本:中文版3.1,其他版本沒有測試

使用方法:進入游戲后,運行程序

Download: http://www.shnenglu.com/Files/sandy/h3c.zip

Feedback

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2005-12-19 15:10 by 小軟
玩游戲你也作弊,我就從沒看你寫的工具有界面的:(

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2005-12-28 14:41 by Flyingis
有意思

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2006-11-01 13:12 by zlot
難道說......

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2006-12-10 22:53 by maber

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-03-04 20:57 by pdd
我也編寫了一個,但是時靈時不靈,似乎地址是變動的。QQ:21384483

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-08-30 10:42 by 浪子高達
re: 為英雄無敵3寫個游戲修改器 回復 更多評論
2007-03-04 20:57 by pdd
我也編寫了一個,但是時靈時不靈,似乎地址是變動的。QQ:21384483

變動是因為英雄變了!

QQ:527301899

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-08-30 10:43 by 浪子高達
那個,如果有界面的話就好了~大哥...

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2009-04-10 20:32 by MIG39CN
你好
哥們 我下了你的那個小程序
怎么沒發現有什么變化啊?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜精品17c| 亚洲精品久久久久久久久久久久久 | 亚洲精品一区二区三区婷婷月 | 亚洲精品日日夜夜| 亚洲激情亚洲| 欧美三级电影精品| 午夜精品久久久久影视| 欧美一区午夜精品| 亚洲电影激情视频网站| 欧美激情精品久久久久久黑人| 欧美精品www| 欧美一区二区三区在线视频 | 亚洲精品视频免费在线观看| 欧美视频中文字幕| 久久久久久精| 欧美激情在线观看| 欧美在线视频a| 欧美成年人视频| 亚洲欧美日本国产有色| 久久亚洲一区| 亚洲在线第一页| 久久免费视频一区| 欧美亚洲视频| 欧美成人午夜激情视频| 亚洲视频网在线直播| 久久国产一区二区| 亚洲一区三区电影在线观看| 久久精品国产91精品亚洲| av不卡在线| 久久久久久久久久久成人| 一区二区三区四区五区精品视频| 午夜一区二区三区不卡视频| 一区二区三区 在线观看视| 国产一二精品视频| 亚洲精品在线观| 激情文学综合丁香| 亚洲一区二区三区成人在线视频精品 | 亚洲一区在线视频| 亚洲精品久久久久久久久久久| 亚洲欧美日韩精品久久久| 亚洲免费av观看| 久久精品盗摄| 性xx色xx综合久久久xx| 欧美日韩视频在线一区二区 | 欧美大片一区二区| 香蕉久久国产| 欧美日韩xxxxx| 蜜臀av性久久久久蜜臀aⅴ| 国产精品乱码妇女bbbb| 日韩一区二区精品葵司在线| 亚洲国产一区二区三区在线播 | 久久午夜精品| 久久精品二区| 国产欧美日韩免费| 亚洲永久免费观看| 亚洲免费在线播放| 欧美日韩中文字幕在线| 亚洲激情视频在线| 亚洲美女av在线播放| 免费在线成人| 欧美高清自拍一区| 在线观看av一区| 久久国产精品99国产精| 久久精品在这里| 国产综合亚洲精品一区二| 一区二区精品| 亚洲免费一在线| 国产精品日韩欧美大师| 亚洲一级二级| 欧美一级久久| 精品91久久久久| 久久亚洲欧美| 亚洲高清在线精品| 日韩一区二区精品在线观看| 欧美国产免费| 亚洲精品在线三区| 一本在线高清不卡dvd| 欧美四级在线| 午夜精品久久久久影视| 久久成人久久爱| 国产在线拍揄自揄视频不卡99| 久久成人人人人精品欧| 久热精品视频在线观看| 国产伊人精品| 久久一二三四| 亚洲美女区一区| 久久国产精品网站| 亚洲国产高清自拍| 欧美日韩免费在线| 在线观看成人av电影| 欧美不卡视频| 亚洲一区视频| 欧美成人黑人xx视频免费观看| 91久久精品国产91久久性色tv| 欧美日韩美女在线| 先锋影音久久久| 欧美激情中文不卡| 欧美一区二区性| 91久久综合| 国产精品一区一区| 欧美国产日韩视频| 先锋影音久久久| 亚洲精品久久久久| 久久免费精品日本久久中文字幕| 亚洲美女福利视频网站| 国产一区二区在线观看免费播放| 欧美岛国激情| 欧美在线免费看| 夜夜嗨av色综合久久久综合网| 久久嫩草精品久久久久| 一本久久青青| 亚洲国产影院| 国产网站欧美日韩免费精品在线观看| 另类欧美日韩国产在线| 亚洲欧美文学| 亚洲美女啪啪| 欧美电影免费观看高清| 久久xxxx精品视频| 亚洲色图自拍| 日韩视频一区二区| 亚洲国产精品黑人久久久| 国产日韩亚洲欧美综合| 欧美视频一区二区三区| 欧美高清在线观看| 玖玖玖国产精品| 久久久.com| 欧美一区二区三区精品电影| 亚洲少妇自拍| 99riav国产精品| 亚洲精品免费一二三区| 亚洲国产激情| 欧美国产一区视频在线观看| 久久综合九色综合网站| 久久久噜噜噜久久久| 久久av资源网| 久久精品成人欧美大片古装| 亚洲欧美另类综合偷拍| 午夜精品久久久久久久久 | 亚洲黄一区二区| 在线观看日韩精品| 国内自拍一区| 一区二区三区在线视频免费观看 | 男人天堂欧美日韩| 欧美成人午夜激情在线| 欧美激情影音先锋| 欧美日韩美女一区二区| 国产精品第一页第二页第三页| 欧美日韩一二区| 国产精品久久久久9999吃药| 国产精品乱人伦一区二区| 国产欧美 在线欧美| 国产亚洲一区二区三区| 激情久久久久久| 亚洲国产婷婷| 亚洲午夜视频在线观看| 午夜精品久久久久久久男人的天堂| 羞羞答答国产精品www一本| 久久久噜噜噜久久久| 欧美精品成人| 国产精品久久激情| 国产亚洲成av人片在线观看桃 | 国产午夜精品视频| 国产日韩精品久久| 亚洲成在线观看| 99ri日韩精品视频| 亚洲一区二区高清视频| 久久精品日韩| 91久久精品美女| 亚洲一区二区四区| 久久免费国产精品| 欧美屁股在线| 国产婷婷成人久久av免费高清| 在线欧美一区| 亚洲一区二区三区在线观看视频| 久久av二区| 亚洲黄色一区| 欧美一级网站| 欧美人与禽性xxxxx杂性| 国产麻豆精品theporn| 亚洲国产精品va| 亚洲欧美日韩在线播放| 农村妇女精品| 亚洲自拍啪啪| 欧美福利视频| 国内偷自视频区视频综合| 亚洲美女在线视频| 久久久久久亚洲精品不卡4k岛国| 91久久久亚洲精品| 久久久精品国产免费观看同学| 欧美日韩一二三四五区| 亚洲国产精品久久久久久女王| 午夜影院日韩| 亚洲精品免费网站| 久久久五月天| 国产伦精品一区二区三| 亚洲一区二区三区久久 | 免费日韩成人| 午夜精品在线视频| 欧美先锋影音| 一区二区三区日韩精品视频|