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

小明思考

高性能服務器端計算
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://m.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>
            99国产精品国产精品久久| 久久精品视频网| 欧美一区二区在线| 亚洲精品日韩欧美| 亚洲激情午夜| 99热这里只有精品8| 一区二区三区欧美亚洲| 一本色道精品久久一区二区三区| 久久综合狠狠综合久久激情| 久久九九国产精品| 男人的天堂成人在线| 欧美国产日韩一区二区三区| 欧美肥婆在线| 亚洲免费av片| 亚洲欧美春色| 久久久久久电影| 久久久亚洲国产天美传媒修理工| 美女网站久久| 欧美日韩一级大片网址| 国产精品天天摸av网| 国产一区日韩一区| 99热在线精品观看| 欧美一区在线看| 欧美激情一区二区三级高清视频| 亚洲精品国产欧美| 亚洲精品午夜精品| 中文国产一区| 久久午夜视频| 国产精品最新自拍| 日韩网站在线| 麻豆久久精品| 日韩一级在线观看| 国产精品视频九色porn| 亚洲福利精品| 亚欧成人在线| 亚洲激情影院| 久久成人羞羞网站| 国产精品成人一区二区| 在线日韩视频| 国产精品国产成人国产三级| 国产一区自拍视频| 亚洲影视中文字幕| 欧美成人伊人久久综合网| 中国日韩欧美久久久久久久久| 久久久亚洲高清| 国产一区二区三区视频在线观看| 亚洲国产精品日韩| 久久综合给合久久狠狠狠97色69| 亚洲一区二区在线免费观看| 你懂的视频欧美| 国产日韩欧美综合精品| 亚洲欧美乱综合| 亚洲欧洲精品一区二区| 久久漫画官网| 黄色在线一区| 欧美一区二区在线| 欧美成人精品高清在线播放| 亚洲午夜三级在线| 欧美久久视频| 亚洲免费观看在线观看| 国产在线精品一区二区夜色| 亚洲午夜久久久久久久久电影院 | 欧美视频免费看| 亚洲日韩成人| 欧美激情一区二区三级高清视频| 久久爱www.| 国产一区三区三区| 久久久久久成人| 欧美一进一出视频| 国产一区二区视频在线观看| 欧美专区福利在线| 亚洲欧美制服另类日韩| 国产精品日韩一区二区| 午夜视频精品| 亚洲欧美电影在线观看| 国产精品天美传媒入口| 亚洲欧美一区二区精品久久久| 99视频精品| 国产精品捆绑调教| 欧美在线观看网址综合| 午夜精品久久久久久久蜜桃app| 国产精品一区二区女厕厕| 欧美在线观看你懂的| 久久久精彩视频| 亚洲国产另类久久久精品极度| 亚洲电影第1页| 欧美日韩精品是欧美日韩精品| 亚洲一二三级电影| 亚洲欧美伊人| 影音先锋亚洲电影| 黑人一区二区| 久久综合五月| 美女国内精品自产拍在线播放| 亚洲国产综合在线| 亚洲精品乱码久久久久久久久| 欧美视频国产精品| 久久伊人亚洲| 欧美精品一区二区精品网| 日韩一区二区福利| 午夜日韩在线| 亚洲日本免费| 亚洲免费视频成人| 亚洲成人原创| 在线亚洲精品福利网址导航| 国产午夜精品全部视频播放| 免播放器亚洲一区| 欧美日韩一区二区三区在线| 久久av资源网| 欧美精品激情blacked18| 欧美成人午夜影院| 欧美一区=区| 欧美激情一区二区三区高清视频| 欧美亚洲免费在线| 亚洲激情一区二区| 国产欧美日韩亚洲精品| 亚洲高清不卡在线| 国产一区二区三区久久久久久久久| 亚洲国产欧美另类丝袜| 国产亚洲女人久久久久毛片| 亚洲精品女av网站| 久久在线精品| 国产精品一区二区在线观看网站| 免费观看成人www动漫视频| 国产精品免费看久久久香蕉| 亚洲福利久久| 国产伪娘ts一区| 一区二区三区精品国产| 亚洲国产一区二区精品专区| 一区二区欧美日韩视频| 亚洲精品少妇30p| 亚洲欧美久久久| 日韩午夜在线视频| 欧美肥婆在线| 欧美不卡在线| 国产精品乱看| 亚洲网站啪啪| 亚洲欧美日韩国产一区二区| 欧美另类高清视频在线| 91久久视频| 亚洲人线精品午夜| 欧美sm视频| 欧美1级日本1级| 在线看欧美日韩| 久久欧美肥婆一二区| 久久精品中文| 国产一区亚洲| 久久亚洲免费| 老司机精品视频一区二区三区| 国产中文一区| 久久综合久久久久88| 欧美18av| 最新69国产成人精品视频免费| 裸体歌舞表演一区二区| 欧美好骚综合网| 亚洲久久一区| 亚洲美女在线国产| 国产欧美一区二区三区久久| 亚洲一区精品视频| 久久精品亚洲一区| 国内自拍亚洲| 免费久久99精品国产自| 亚洲国产欧美国产综合一区| 国产精品毛片a∨一区二区三区| 亚洲男人的天堂在线观看| 久久精品国产精品亚洲| 一区二区在线视频| 欧美国产专区| 中文一区二区| 久久免费国产| 亚洲开发第一视频在线播放| 欧美日韩一区二区在线播放| 一本色道久久综合亚洲精品婷婷| 欧美一级免费视频| 亚洲国产91色在线| 欧美午夜无遮挡| 午夜免费在线观看精品视频| 久久综合九色综合欧美就去吻| 亚洲精品免费在线| 国产欧美另类| 免费美女久久99| 亚洲欧美国产视频| 欧美激情第二页| 国产农村妇女精品一区二区| 久久久久久久一区二区三区| 亚洲国产欧美一区二区三区同亚洲 | 国产精品www网站| 欧美一区亚洲二区| 亚洲国产日韩综合一区| 久久精品国产欧美激情| 日韩视频在线观看一区二区| 国产精品久久久久aaaa樱花| 久久亚洲色图| 亚洲欧美网站| 在线亚洲精品| 亚洲国产精品热久久| 欧美一区二区三区免费在线看 | 午夜一级久久| 一本久久精品一区二区| 亚洲经典自拍| 在线观看视频欧美|