求一个反恐精英号中如何找HP的基址,求思路?

CPU进入保护模式时,CS寄存器是如何变化以适应从“段基址”到“段选择子”的过程的? - 知乎2被浏览21分享邀请回答0添加评论分享收藏感谢收起cs1.6怎么用易语言做辅助
全部答案(共2个回答)
的基址,当然新手要从小游戏开始,我电脑没有什么大游戏,我就以超级玛丽奥为列1,打开游戏和CE2,打开游戏进程。3,首次未知数值扫描4,吃个蘑菇变大,选择变动的数值进行扫描5,让人物变小,在选变动的数值扫描,6,这样反复搜索,最后得出变小值为0 变大值为 16,打开易语言进行写挂用一个时钟来控制无敌7.编译,OK...
学会易语言做辅助,就要先学会用CE来寻找相关信息的基址,当然新手要从小游戏开始,我电脑没有什么大游戏,我就以超级玛丽奥为列1,打开游戏和CE2,打开游戏进程。3,首次未知数值扫描4,吃个蘑菇变大,选择变动的数值进行扫描5,让人物变小,在选变动的数值扫描,6,这样反复搜索,最后得出变小值为0 变大值为 16,打开易语言进行写挂用一个时钟来控制无敌7.编译,OK试试外挂8.测试OK,碰到怪物就变大, 我这只是个列子,希望对你有用
额,制作挂前提要用到很多知识
你现在要做的是把易语言的基础打牢固
然后熟悉CE这个软件
在从单机游戏入手,制做简单的W
创世兵魂ce修改器是一款专门用于修改网页游戏创世兵魂的游戏修改工具。创世兵魂ce修改器可以修改游戏里的一些能力以及一些武器的威力,让你轻松轻一步从菜鸟变大神。
直接放到C:\Program Files\Cheat Engine 6.2\languages文件夹下,如果有相同的文件,替换之
新手吧! 我最痛恨zuobi的LJ了.
你要是想开挂很简单啊,先下载CS1.6作弊器.然后点一下那个作弊器的程序在进CS1.6就可以了.
答: 急!!!!!!!!!!!!!!!!!!!!!!!!!!
答: 朋友相处要严以律己,宽以待人。
朋友出去玩,AA制最好。如果不是,自己要抢先付钱,不要斤斤计较。你就是不坐船也要抢先付钱才对。
意欲取之,必先予之。其实朋友只是...
答: 从装浩方之前把原来的文件全部删了。
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415管理记录:本帖被 Carrot 执行加亮操作()
由於看了補丁區發現好像沒人寫過這方面的文章可是又有不少人在使用按鍵精靈所以就分享一下嚕^^如果重複那就請見諒了!!在開始講解之前先簡單介紹一下我們今天要用到的工具Cheat Engine這個作弊程式跟常聽到的GM (Game Master)很類似都是修改記憶體內容達到作弊的目的但是Cheat Engine功能比gm還要強大很多很多這方面的介紹網路上可以找到很多在這邊就不多加贅述了Cheat Engine Cheat Engine 5.4 繁體中文版  Cheat Engine 5.4 簡體中文版  請注意一定要先安裝英文版的中文版才能正常使用喔英文版可以裝5.5的沒關係另外簡體中文版的沒測試過所以不曉得能不能使用在說明一下為什麼要直接讀內存相信很多人都已經會使用按鍵精靈也已經用過許多套腳本了或許有人會遇到一些問題什麼時候該喝生命藥水?什麼時候該喝耐力藥水?什麼時候該喝魔力藥水?甚至是有沒有被怪打到?(怎麼會遇到這個問題,這邊就不講明了XD)上面這些問題相信在很多腳本都會遇到像是掛爆擊、自動冶煉、自動製藥等等傳統的案件精靈解決血量問題的方法是抓取圖片判斷但是這個方法很難精準取得數值當然也就很難依照每個人的需求去設定百分比了當然我們學會使用CE以後還可以去找一些其他的東西下面就是正式的教學步驟了首先以視窗模式執行瑪奇並登入人物開啟CE以後點選左上角的圖示=730) window.open('http://zhdgtw./y1pIDibjXcBtOWHQSQ4o0IFqA_-LPSpjPisO3zaSFSAS_jniY2IasIBydikASWEoHEmS9ZJ8H2eZJZG0QqYWOAHh5fjsTGqKl2-/CE%E9%81%B8%E5%8F%96%E7%9B%AE%E6%A8%99.bmp');" onload="if(this.width>'730')this.width='730';" >之後會出現電腦裡目前執行所有程式的列表選擇瑪奇client.exe=730) window.open('http://zhdgtw./y1pHlAsVHOx_T3R5a58ZrEP_GjolEasssJk46pbTXJrjdDD8fiu0C4rOAORDwGeAMazTWU3oy4v3y5c8__4S5du3DPT7gdri-iO/CE%E9%81%B8%E5%8F%96%E7%9B%AE%E6%A8%992.bmp');" onload="if(this.width>'730')this.width='730';" >回到遊戲中打開自己的腳色資訊視窗(偷偷露一下剛開的小精靈的臉XD)=730) window.open('http://zhdgtw./y1pTeF5fjqAG8N74Ljg73-WLA4KpS-JwGVAUx_lH2ArgelkvT2NwZmpmsWB24qgZarKYllaujCX6xy8aDp3q9u6w3Slv8OuOdxL/%E8%85%B3%E8%89%B2%E8%A6%96%E7%AA%97.bmp');" onload="if(this.width>'730')this.width='730';" >如小妹的角色HP目前值是55於是我們就回到CE的視窗在數值的欄位裡填入55並按下「初次搜索」就會得到如圖的結果=730) window.open('http://zhdgtw./y1pjatwV444JH7dIgDO3wLmB6N1Jv_Ddq7XZUVFkSwaHBBAp7UDQfTbI1pJkaQlDZbS4R5HoxFA4MOLeU50nRH_z2PZLueEXz75/CE%E5%88%9D%E6%AC%A1%E6%90%9C%E7%B4%A2.JPG');" onload="if(this.width>'730')this.width='730';" >內存搜索的結發現找到很多筆資料所以我們要多搜索幾次再次回到瑪奇視窗想辦法改變角色的血量像是使用風車或是故意被怪打然後再回到CE視窗填入新的HP數值並按下「再次搜索」以下是小妹的HP變成37後第二次搜索的結果=730) window.open('http://zhdgtw./y1prWH5CJ3xknwUeHgR2DOBHtT94DGVDirgPgNA2yDtu5AY8RbYw_DidzERmHWFVsdNwD03wWuMwdvjV6JEIJgb66wqhznU90pL/CE%E5%86%8D%E6%AC%A1%E6%90%9C%E7%B4%A2.JPG');" onload="if(this.width>'730')this.width='730';" >可以發現找到的目標已經剩沒幾個了這代表我們快找到了於是再回到瑪奇視窗想辦法讓腳色的HP回到滿血狀態的55後進行了第三次搜索=730) window.open('http://zhdgtw./y1phxZ03X-TQtme3_k7Hg_wW0LyzUuXRqM7GFmefWbWH6eDhBAta50OneMRod3dpjLMo7Gqzd5aDgHPqbEBVzXXYjrzsj6rge0W/%E7%AC%AC%E4%B8%89%E6%AC%A1%E6%90%9C%E7%B4%A2.JPG');" onload="if(this.width>'730')this.width='730';" >總算找到的目標只剩下一個了這個位址就是內存中記錄我們HP值的位址可是不要以為這樣就大功告成了由於現在的程式基本記憶體分配都是使用動態分配的方式所以每次登入HP的位址都會改變我們總不能每次登入都重新查找一遍吧好在就算是動態分配記憶體位址也是有一定的方式的所以我們只要找到用來分配記憶體位址的「基址」再根據基址去計算這個位址就可以每次登入都讀取到HP數值了下面教大家怎麼找基址這比較複雜一點大家要專心看囉!!首先在剛剛CE視窗我們找到的最後一個目標上點鼠標左鍵兩下就會新增到CE視窗下半部裡面但是這時候他顯示的說明很不清楚所以我們在該位址資訊上面按滑鼠右鍵移到「更改這個位址紀錄」選擇「說明」並把說明改成HP完成後如下圖=730) window.open('http://zhdgtw./y1pS5b8s3DnSHzcjQaktYyWVjknFB_eTWKsPIwUenAFbCdSOPBMYwGSsXXjA5eWSqp2QWuD2jPJfAOqF-rSz8iJ2QDrjH5BdRhB/%E6%9F%A5%E6%89%BE%E5%88%B0%E4%BA%86.JPG');" onload="if(this.width>'730')this.width='730';" >接著在我們修改好後的位址紀錄上點右鍵並選擇「尋找是什麼在寫入這個位址」來追蹤它點選後會出現一個確定的視窗就直接按確定就對了=730) window.open('http://zhdgtw./y1pBtzJK44WUYEoyV31qOhSYbovhaQsmSlWyjRrSRlDGdrjDHOC_KATHBsu_KfzJ914z4LZpGGHzEdJHWMbKnIDHr_vVkBHd6ig/%E5%B0%8B%E6%89%BE%E6%98%AF%E4%BB%80%E9%BA%BC%E5%9C%A8%E5%AF%AB%E5%85%A5%E9%80%99%E5%80%8B%E4%BD%8D%E5%9D%80.JPG');" onload="if(this.width>'730')this.width='730';" >之後我們回到遊戲中再次隨便改變我們的血量因為我們要進行改變HP值的動作剛剛找到的那個位址才會被修改這樣我們才能追蹤道是哪條程式碼在對我們的HP值做修改動作我們可以追蹤那條程式碼去找到基址改變血量後回到CE視窗會發現找到一條對我們HP值修改的程式碼=730) window.open('http://zhdgtw./y1pL6O-Ax8EXUYf4FOm4ldy9niR7synuHDMdXYJXTPaC7EDWAJmFaMshEkxfXP1bI7ZSPRQqgb75ndxgJcUcKxeV2hBxZveSuEH/%E5%B0%8B%E6%89%BE%E6%98%AF%E4%BB%80%E9%BA%BC%E5%9C%A8%E5%AF%AB%E5%85%A5%E9%80%99%E5%80%8B%E4%BD%8D%E5%9D%803.JPG');" onload="if(this.width>'730')this.width='730';" >點選「更多訊息」的按鈕我們可以看到這條程式碼執行的時候所有佔存器的值=730) window.open('http://zhdgtw./y1pl8e1YpvcmeCYCLYlAsfl7cGhgQO3S_-hklQNvDoNpX0E1yAmV6g7CPi1Cnxdf2gf9_KzaWIh98efZXGeVA-ZXHW67pIty2Mp/%E6%9B%B4%E5%A4%9A%E8%A8%8A%E6%81%AF.JPG');" onload="if(this.width>'730')this.width='730';" >把佔存器得值記錄下來方便我們等下使用由於小妹已經查過了所以知道我們這次只會用到esi和ebx的值於是我們把這兩個佔存器的值分別記錄在記事本上esi 01EF57E0ebx 把「更多訊息」視窗關掉後再次按下「顯示反彙編程式」的按鈕就會出現「記憶體檢視器」的視窗(台灣叫做「組合語言」,個人比較習慣組合語言這樣的名稱XD)視窗裡面顯示區的第一條指令就是我們剛剛追蹤到的那條指令但是我們現在要看的是它前面的指令所以我們把卷軸稍微往前捲動一點點結果如下=730) window.open('http://zhdgtw./y1pS5b8s3DnSHxt5rs04T1Me1yqul5gZGkqDYNJWC6HzxvkQGnP5Bq8GXfmeYOjEs3O6YBoVcmRI87W8OBDEUo6k4R33zIvIwXV/%E8%A8%98%E6%86%B6%E9%AB%94%E6%AA%A2%E8%A6%96%E5%99%A8.JPG');" onload="if(this.width>'730')this.width='730';" >注意反白的指令 MOV [ecx], edx和大家說明一下「[]」在組合語言裡面的意思在[]裡面的東西代表的是是位址所以MOV [ecx], edx意思是說把edx佔存器的值搬到「以ecx佔存器的值做為位址的記憶體空間裡」edx的值就是我們的血量它可能是由前面呼叫的程式回傳的其實ecx就是我們剛剛查找到的HP記憶體位址而前面已經說過這個位址是會一直改變的所以我們要往前找找看有哪行程式碼對ecx佔存器的值進行了寫入注意畫上紅色底線那條程式碼lea ecx, [esi+ebx*4+]這意思是說將以「esi+ebx*4+」作為位址的記憶體值給ecx所以這條程式碼對ecx的值進行了更動我們要根據這條程式碼來繼續找基址但是我們發現畫上紅色底線的指令後面還有兩條畫上黃色底線的跳轉指令說不定在跳轉指令後面對我們的esi或是ecx做過修改啊好在這邊它並沒有使用這兩個佔存器來做回傳所以可以不必理會它詳細的原因這邊也不多加贅述回到lea ecx, [esi+ebx*4+]這條程式碼我們檢查剛剛記錄下來的兩個佔存器的值會發現ebx是0所以其實可以把程式碼解讀成lea ecx, [esi+]經過這條程式碼後ecx的值會變成[esi+]而對HP值進行寫入的程式碼為MOV [ecx], edx所以可以理解成MOV [[esi+]], edx(注意組合語言是沒有這樣的指令的,這邊改寫成這樣純粹是為了理解方便)由於佔存器的值也是從某一個記憶體位址的值搬過去的所以我們接下來就要去查找看看esi的值是存在哪個記憶體位址裡面的我們回到CE的主視窗先把數值欄位旁邊的HEX打勾再填入esi的值01EF57E0按下「新的搜索」再按下「初次搜索」一樣會找到很多的目標我們把卷軸往下卷會發現有一個目標是綠色的這就代表這就是基址原因這邊就不多說了結果如下=730) window.open('http://zhdgtw./y1pIxg5VLIHe2GppHdOtpIyXdk8HTro2vvZKyFp_YD4K4gTFNo_DoSMYzOwJSjES6s6kIh9mupjwXVmv9rRD6hCvIo9MEvfvBgV/%E6%89%BE%E5%88%B0%E5%9F%BA%E5%9D%80.JPG');" onload="if(this.width>'730')this.width='730';" >找到的位址是63DDDF18,這就是我們要找的基址了在63DDDF18這個位址裡面存的值最終會被搬到esi佔存器裡面所以我們HP的值就是[[[63DDDF18]+148]]只要先取出63DDDF18這個位址裡面的值把這個值+上148(H)再把算出來的結果當成位址去取得值再把取得的值當成位址去取得值就是HP了這樣講好像很複雜下面直接付上按鍵精靈的程式另外這邊的偏移植148是16進位的在按鍵精靈中使用要先轉成10進位不過附上的程式碼中已經取好了所以可以直接使用如果要找HP最大值或是MP和SP的相關資訊也是用以上的方法不過這邊也先直接付上位址嚕maxHP    [[[63DDDF18]+154]]HP    [[[63DDDF18]+148]]maxMP    [[[63DDDF18]+158]]MP    [[[63DDDF18]+14C]]maxSP    [[[63DDDF18]+15C]]SP    [[[63DDDF18]+150]]其實觀察以後會發現這些偏移值都是有一定距離的有興趣的大家自己研究吧另外由於是以台版的進行查找所以這個基址只有台版的才是對的喔如果是國服就要按照上面步驟重新找一遍基本上步驟是一模一樣的還有如果有改版也是要重新找一遍不過偏移植永遠都不會改所以只要找到基址然後把按鍵腳本的基址改掉就行了過程大概三分鐘XD今天去世紀天成載來測試過了國服的基址和台服竟然一樣XD所以附件的程式碼是可以使用的喔下面是按鍵精靈程式碼base  = &H63DD1938//記憶體基址Gosub settingDelay 1000SayingStr = baseAddrGosub printDelay 1000Gosub getHPDelay 1000Gosub getManaDelay 1000Gosub getStaminaDelay 1000EndScript Sub setting    Plugin mabi = Window.Foreground()    Plugin mabiTitle=Window.GetText(mabi)    SayingStr = &正在設定...&    Gosub printReturn Sub getHP    VBSCall ReadMemory(base,2,baseAddr)    VBSCall ReadMemory(baseAddr + 328,2,curentHP)    VBSCall ReadMemory(baseAddr + 340,2,maxHP)    SayingStr = &MAXHP = & & maxHP & &, HP = & & curentHP    Gosub printReturn Sub getMana    VBSCall ReadMemory(base,2,baseAddr)    VBSCall ReadMemory(baseAddr + 332,2,currentMana)    VBSCall ReadMemory(baseAddr + 344,2,maxMana)    SayingStr = &maxMana = & & maxMana & &, Mana = & & currentMana    Gosub printReturn Sub getStamina    VBSCall ReadMemory(base,2,baseAddr)    VBSCall ReadMemory(baseAddr + 336,2,currentStamina)    VBSCall ReadMemory(baseAddr + 348,2,maxStamina)    SayingStr = &maxStamana = & & maxStamina & &, Stamana = & & currentStamina    Gosub printReturn Sub print    SayingStr = mabiTitle & &    狀態回報&  & & SayingStr    Plugin DBSoft.SetWindowsCaption(mabi, SayingStr)Return Sub OnScriptExit    If mabi && 0        Plugin DBSoft.SetWindowsCaption(mabi, mabiTitle & &    腳本停止&)        Delay 1000        Plugin DBSoft.SetWindowsCaption(mabi, mabiTitle)    EndIf Return 由於我習慣將輸出顯示在視窗標題列所以請大家使用的時候不要用全銀幕模式還有為了要將結果輸出在標題列因此使用了一個按鍵精靈插件剛剛發現原來M$的連結過一段時間會自動改=  ='所以以後如果有不能下載的就請到插件原網址去載吧~將下載下來的dll檔和說明檔放到「C:\Program Files\按鍵精靈\plugin」資料夾內就可以正常使用嚕覺得不錯的就幫頂一下吧!!否則一下子就沉了[ 此帖被chuchuchu在 12:35重新编辑 ]
描述:腳本
(1 K) 下载次数:133
很高手 ...........
数据居然是以明文形式放在内存里。。。。不知道LZ有没办法读取伤害输出?
GM800(玛丽)
我很好奇这个按键精灵的作用
龙天行(伊文)
不错,就是没看太明白= .=
回二、三樓
引用第2楼虾T欲翔于 19:43发表的&&:数据居然是以明文形式放在内存里。。。。不知道LZ有没办法读取伤害输出?&&傷害輸出恐怕就要抓封包了XD引用第3楼吴嬡于 21:37发表的&&:&&我很好奇这个按键精灵的作用&&運用大概就是喝水吧&&不過根據這個原理可以去抓遊戲中其他數值&&例如經驗值之類的
Re:教大家查找HP MP SP的內存基址(附件可貼到腳本上使用,國服台服都可 ..
我在想战斗力是不是也能读取到...
=650) window.open('/dR4LsbQGc4tAT.gif');" onload="if(this.width>'650')this.width='650';if(this.height>'150')this.height='150';" >
Re:教大家查找HP MP SP的內存基址(附件可貼到腳本上使用,國服台服都可 ..
很利害呀....
Re:教大家查找HP MP SP的內存基址
引用第6楼Sakura于 16:28发表的 Re:教大家查找HP MP SP的內存基址(附件可貼到腳本上使用,國服台服都可 .. :我在想战斗力是不是也能读取到...&&基本上是可以的&&理論上遊戲裡面所有的東西都可以讀到的&&不過有的數值不曉得他的資料結構就很難查找&&話說讀戰鬥力有什麼用處嗎?
一抹蚊香(克莉斯特)
Re:教大家查找HP MP SP的內存基址(附件可貼到腳本上使用,國服台服都可 ..
看不明白啊,还是好好研究下把,谢谢分享.
真的是细节打败爱情吗?=650) window.open('http://yytemp.gicp.net/q/1/iGOCICGT03.jpg');" onload="if(this.width>'650')this.width='650';if(this.height>'150')this.height='150';" >
&|- YY新手教室
&|- YY大冒险
&|- 旧帖查阅
洛奇英雄传
☜_人形公馆_☞
页游手游区
&|- 事务所
版主会议室
&|- 大杂烩
&|- 自曝区
&|- 日记屋
&|- 水星球
&|- YY秀创作交流版
&|- YY秀舞台
&|- 原创屋
原创故事版
&|- 跳蚤市场
&|- 洛奇讨论版
>> 洛奇分区
玛丽交易区
&|- 鲁拉里
鲁拉里交易区
伊文交易区
潘妮交易区

我要回帖

更多关于 cf1.4.6基址 的文章

 

随机推荐