日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CE修改器教程总结2

發布時間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CE修改器教程总结2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CE推出的游戲界面的教程,可以說是真正的游戲了。

  • 第一關
    我們射擊5次需要裝彈,期間敵人回復滿血,找個辦法殺了他。
    思路很多,最簡單的思路就是秒殺就可以了。
    我們可以memory editing ,也可以assembly editing。

未知值掃描找到敵人血量,直接改成1,射擊一次他就爆炸了。
或者找到射擊修改它血量的代碼,代碼注入

mov [rax+70],edx

改成

mov [rax+70],0

簡單粗暴有效,這是我們的行事原則,同樣的效果,盡量用最簡單方法實現。

  • 第二關
    任務是兩個敵人,血量傷害都比我們高。
    先試試第一關的操作,血量改成1,然后射擊發現殺了一個以后,敵人暴走了,發射大子彈造成秒殺傷害,鎖血都不管用,雖然我也殺了它,顯然不滿足我們要求。
    然后嘗試assembly editing
    nop替代扣血指令,讓我們自己無敵,結果敵人也無敵了。
    那就加一個判斷,再寫一個秒殺吧。
    代碼查找,修改血量代碼如下:

    猜測血量的偏移為60,使用數據分析功能(tools/dissect date)然后添加三個血量地址-60,添加結構體,分析,結果如下

    很簡單地發現偏移70的位置,我們是0,敵人是1,用代碼注入寫如下邏輯,是我自己不扣血,否則都是秒殺。

  • 第三關

    要求板子全變成綠色,門會打開,然后去到門那里。
    思路1:猜測板子綠色個數有個變量存儲,找到修改成全點亮。
    實現:
    確實有這個變量,改成全點亮了,然后敵人全部擠到門口了。所以先到門口,再修改,就過關了,或者找到我們自己的坐標傳送進去也行。

    思路2:修改綠色數量的同時,鎖定敵人坐標。
    實現:
    坐標一般是float類型,使用未知值掃描,確定三個敵人的x坐標,直接鎖定,然后跑到門口。

    結果不行,因為鎖定的原理其實是不停的寫數據,程序控制的敵人位置也是鎖定的,兩個都在不停的寫,敵人位置超高頻率來回跳動,我們還是過不去
    思路3:修改敵人y坐標,鎖定,讓敵人去屏幕外
    實現:
    前面說了,y坐標一般在x坐標后4個字節的位置,不用再找了,手動添加地址就行了。

    還有一個在上面,勉強可以把,能過關。
    思路4:無敵
    我們碰到敵人才死,所以把自己弄無敵可以了。
    因為我們碰撞就會死,所以應該有一個變量儲存我們的存活狀態,一個函數執行修改,我們用nop代替試試。
    先找存活狀態。
    未知數掃描,找了半天,最后還剩下一百多個變量,都是存活為1,死亡為0,我們當然沒時間一個個嘗試(其實不嫌麻煩不怕崩潰,折半查找也很快能確定),換個思路,找到人的坐標,數據分析找周圍的變量來找存活狀態。
    找到x坐標,找出是什么改寫了它,動一下,找到坐標的offset應該是24,數據分析添加x坐標-24,添加結構體,分析結果如下:

    找到了暫停,和是否可見,死亡次數,沒有找到存活變量。
    所以我們還可以用另一種方法查看直接點擊內存地址,查看周圍內存空間,右鍵地址,browse this in memory region,死亡查看哪些值在變化。

    找到以上幾個有價值的變量,一個個鎖定試一下,最后一個是死亡次數。經過確定,幾個變量分別代表如下含義

    鎖定了之后我們超快速重生,撞上去跟沒死一樣。

    因為我們碰撞就會死,所以應該有一個變量儲存我們的存活狀態,一個函數執行修改,我們用nop代替試試。
    對存活狀態地址,找出什么改寫了這個地址,死了找到兩條指令,一條應該是碰撞,另一條應該是原地復活,我們用nop代替碰撞。
    發現確實不死了,但是那個代碼應該是直接弄死的。所以我們這個操作應該是屬于取消碰撞傷害,不掉血,并不是不碰撞。
    思路5:取消碰撞
    打開disassembler往前看兩行,發現如下代碼:

    比較[rbx+40]和0,我們已經知道,這里是存的是存活狀態,不等于0的時候跳轉,我們把它改成je。會發現我們碰撞消失了,具體是什么原理我自己還沒有弄懂。匯編太菜了,要補習啊。

下面寫教程里的正確做法
break and trace那條mov代碼,這樣我們就能找到這條代碼執行前的代碼,或者說調用這條代碼的代碼。
參數設置如下

點擊ok,然后觸發那條mov,也就是碰一下怪物,等待結果。
右鍵展開結果如下

我們往上級找call,跟隨上一級的指令我們跳轉到了這里。。
這里其實已經不懂了,希望來個懂哥教我。看到可以留言你的聯系方式,我加你,或者自己慢慢未來弄明白吧,匯編還需要重新學習一下。

思路6:飛行/多級跳/超級跳
多級跳:游戲修改的思想就是,大膽猜測,然后求證。
我們在地上能跳起來,在天上不行,是為什么呢?
我們猜測應該有一個變量來判斷我們現在是在空中還是在地下,如果我們找到這個變量或者找到這個函數,我們就可以空中跳躍了。
超級跳:我們跳躍高度總是固定的。所以應該在條約函數中,有一個變量存儲了我們最高高度,英文(cap value),比較一下達到最高就讓我們下跌。
飛行:目前的思路就是飛起來以后鎖定y坐標。
既然需要判斷我們在哪里,肯定要從y坐標入手吧,找出是什么一直在訪問我們的Y坐標,發現有1條指令在我們跳起來時就不執行了。

我們在反匯編器打開這個指令,立即在周圍發現了可疑的代碼

第一處可疑的地方在于,好像在比較一個flag然后做了不同的操作,flag有可能是是否在空中的標志,第二個地方的可疑點在于這個1.45估算下來大致等于我們的跳躍高度。
我們可以先修改這個1.45試試,我們發現這個是一個綠色的基址,雙擊,在ct表中手動添加地址,類型選擇float,修改成為2.45,返回游戲發現我們可以跳得很高了,我們成功找到了cap value。
接下來把cmp的00改成01,發現我們在空中也可以跳了。
實驗完畢后,改回原來的代碼,使用代碼注入,添加到ct表,我們就可以控制hack的開啟和關閉了。
效果如下:

飛行搞明白了再繼續寫吧。

總結

以上是生活随笔為你收集整理的CE修改器教程总结2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。