看B站直播发现这个有趣的游戏,找了半天修改器无效,Cheat Engine怎么找指针有点忘了,直接找数值每关都要重来,想来想去还是简单粗暴的反编译好了。

顺便做下C#反编译备忘。

首先把DLL反成IL

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe

Broforce2015.5.9\Broforce_beta_Data\Managed\Assembly-CSharp.dll

dump存为a.il和a.res

然后用

.NET Reflector 8.4

反编出源码

sublime搜索关键字Lives,定位到Player.cs文件中的RemoveLife函数

 public void RemoveLife()
 {
     if (GameModeController.GameMode == GameMode.Campaign)
     {
         this.Lives--;
     }
     else
     {
         this.Lives--;
         Debug.Log("Not Adjusting Lives text " + GameModeController.GameMode);
     }
 }

通过IL可知Lives--对应的IL代码类似

 IL_0012:  sub
 IL_0013:  call       instance void Player::set_Lives(int32)

简单粗暴的把sub改成add就行,一共两处。

改完后保存

备份游戏原Assembly-CSharp.dll文件

用ilasm把修改后的代码编译回dll

C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe /dll/resource=a.res a.il

用生成的a.dll替换Assembly-CSharp.dll

大功告成,人数越死越多,再也不用担心玩着不爽了

修改Broforce无限人数,死亡不减反加-LMLPHP

05-11 13:31