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

小明思考

高性能服務器端計算
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>
            亚洲国产成人精品久久| 亚洲每日在线| 在线成人av| 国语自产精品视频在线看一大j8| 国产精品极品美女粉嫩高清在线| 欧美日韩三级一区二区| 欧美视频官网| 国产精品私拍pans大尺度在线| 国产精品久久久久毛片大屁完整版| 国产精品黄色| 一区二区不卡在线视频 午夜欧美不卡'| 国产日韩亚洲欧美| 国内久久精品视频| 国产精品va| 性欧美暴力猛交69hd| 午夜国产精品视频免费体验区| 香蕉成人久久| 你懂的国产精品| 亚洲另类在线视频| 午夜精品久久久久久久99热浪潮| 久久国产视频网站| 欧美激情综合亚洲一二区| 国产精品区一区| 亚洲高清电影| 午夜精品视频在线观看一区二区| 久久久人人人| 亚洲免费观看| 久久资源av| 亚洲日韩欧美视频一区| 91久久久亚洲精品| 午夜精品一区二区三区四区| 你懂的视频欧美| 国产精品素人视频| 亚洲人成人一区二区在线观看| 亚洲欧美视频一区二区三区| 伊人春色精品| 午夜一区二区三区不卡视频| 欧美国产日韩精品| 欧美一区二区三区在线观看视频| 欧美精品在线免费播放| 亚洲高清视频在线观看| 欧美成人一区二区三区在线观看 | 欧美日韩高清免费| 国产日韩欧美麻豆| 亚洲尤物在线| 亚洲精品久久久久久一区二区| 欧美一区二区三区免费视频| 欧美精品一区在线播放| 在线精品国精品国产尤物884a| 亚洲欧美久久| 一本久道久久久| 欧美精品一区二区三区久久久竹菊 | 久久精品在线播放| 亚洲午夜精品久久| 欧美日韩国产综合在线| 91久久久亚洲精品| 欧美大学生性色视频| 久久国产欧美| 狠狠色狠狠色综合日日五| 欧美专区福利在线| 亚洲综合色噜噜狠狠| 国产精品欧美经典| 午夜精品久久久久久久久| 99热这里只有精品8| 欧美日韩国产一中文字不卡 | 日韩亚洲不卡在线| 狼狼综合久久久久综合网 | 欧美日本高清| 日韩视频免费在线| 亚洲人成网站在线观看播放| 亚洲一区二区三区精品视频| 国产精品久久久久久av下载红粉| 一区二区三区日韩| 日韩午夜高潮| 国产精品爽黄69| 裸体一区二区三区| 欧美肥婆在线| 9人人澡人人爽人人精品| 亚洲毛片av在线| 国产精品一区视频网站| 久久久精品动漫| 老司机成人在线视频| 一区二区三区四区国产| 亚洲欧美日韩另类| 久久久国产精品一区| 91久久久亚洲精品| 亚洲一级网站| 亚洲第一天堂av| 夜夜精品视频| 精品动漫av| 亚洲伦理在线| 黑人巨大精品欧美一区二区| 亚洲国产精品一区在线观看不卡| 欧美午夜在线| 欧美成人精精品一区二区频| 欧美日韩理论| 美国十次了思思久久精品导航| 欧美成人午夜视频| 午夜视频一区二区| 欧美成人综合一区| 美女尤物久久精品| 国产精品黄色| 91久久精品美女高潮| 国产午夜精品一区二区三区欧美| 美女亚洲精品| 国产精品色午夜在线观看| 欧美国产日韩二区| 国产性做久久久久久| 亚洲区在线播放| 国内精品国产成人| 亚洲少妇诱惑| 亚洲精品自在久久| 久久久国产精品亚洲一区| 午夜影院日韩| 欧美日韩免费高清一区色橹橹| 久久这里只有精品视频首页| 国产精品视频内| 99伊人成综合| 一本到高清视频免费精品| 亚洲二区视频在线| 欧美成年人视频网站| 久久精品国产成人| 国产精品久久二区二区| 亚洲精品午夜精品| 欧美一区二区视频在线| 国产精品久久久久7777婷婷| 欧美黑人多人双交| 激情综合中文娱乐网| 亚洲欧美日韩在线综合| 亚洲无线视频| 欧美日韩国产综合视频在线观看| 欧美+亚洲+精品+三区| 国产亚洲免费的视频看| 亚洲自拍偷拍福利| 午夜在线精品| 国产精品亚洲аv天堂网| aaa亚洲精品一二三区| 美女久久网站| 国产视频综合在线| 性欧美xxxx视频在线观看| 欧美亚洲自偷自偷| 国产欧美日本在线| 性欧美video另类hd性玩具| 欧美一区二区三区免费看| 国产精品视频你懂的| 亚洲新中文字幕| 久久国产免费看| 狠狠色丁香久久婷婷综合_中| 久久大香伊蕉在人线观看热2| 久久久久.com| 亚洲第一天堂av| 欧美极品aⅴ影院| 99精品国产99久久久久久福利| 一区二区三区日韩在线观看| 欧美视频第二页| 亚洲欧美中文日韩v在线观看| 久久久久国产精品厨房| 久久久久欧美精品| 欧美韩日一区| 一区二区三区www| 国产精品免费一区二区三区在线观看| 亚洲欧美精品中文字幕在线| 久久综合伊人77777尤物| 亚洲国产天堂久久国产91| 欧美电影专区| 亚洲视频二区| 麻豆精品视频| 亚洲无线一线二线三线区别av| 国产精品羞羞答答| 久久视频免费观看| 夜夜嗨av色综合久久久综合网| 欧美一区影院| 国产视频久久久久| 欧美成人午夜激情视频| 亚洲一区影音先锋| 欧美护士18xxxxhd| 亚洲欧美日韩中文播放| 亚洲一区二区三区在线播放| 国产日韩欧美综合一区| 美女日韩欧美| 亚洲欧美一区二区视频| 欧美激情视频一区二区三区在线播放| 亚洲午夜高清视频| 亚洲第一视频网站| 国产女主播一区| 欧美另类一区| 久热精品视频在线观看| 亚洲一级黄色av| 亚洲国产欧美在线| 久久久亚洲午夜电影| 亚洲免费在线精品一区| 亚洲精品久久嫩草网站秘色| 国产一区二区高清视频| 欧美日韩在线免费| 免费成人黄色片| 久久精品国产99精品国产亚洲性色| 欧美精品激情在线观看| 午夜精品亚洲一区二区三区嫩草| 一区二区激情视频| 在线视频观看日韩|