Skip to content

a45s67/Pikachu-Volleyball-P2P-exe

Repository files navigation

Pikachu Volleyball P2P (.exe version)

demo

How to use

  1. Download "Pikachu-Volleyball-P2P.zip" and unzip it.
  2. Excute "new_pika_IAT_mod.exe" and select 2P mode.
  3. Set the ip and port
  4. Play

Note

  • I download the .exe of this game from internet, and modify it to "new_pika_IAT_mod.exe".
    I did not trace throughly of this binary, not sure if this file is safe =口=...
    ( At least built-in Windows Defence didn't warn me )
  • "connect.dll" is the compiled output of project "connect" in "connect/" with Visual Studio.
    This is writen by myself, I think it is safe(?)
  • If you don't have your own IP, you can regist a google cloud VM, it owns IP. Then use some tools like frp to bind your port to the VM.

Change Log

  • 2020/6/27

    • Hold to wait for client connection when selecting 2P mode after "Create Room", then set position.
    • Improve the process of "Search Room" dialog (about handling of mutex).
    • Solve the problem that the process will be blocked after game over.
  • 2020/6/26

    • Add the Create room and Search room buttom
    • Add Close room/connection buttom to handle unexpected connection

Description of some important source files

  • binary modification/inject PE/insert.c :

    • change the characteristics of .rsrc section to RWX and expand it for new func, new IAT.
      (At first I considered to add a new section for functions, append new DLL exports to import table directly with PE Lord. But it said there was no space. 😢 )
    • insert func shellcode, expand IAT for DLL injection
    • change the flow of code
  • binary modification/func shellcode/func_gen.py

    • generate the functions to do something after hook
  • connect/connect.slm

    • generate the connect.dll responsible for socket intialization, communication between users.

Tools

  • Dynamic reverse engineering

    • x32dbg
    • Cheat Engine
  • Static disassembly

    • IDA pro 7.0
    • Ghidra
  • PE related

    • PE Lord
    • PE bear
  • Shellcode

    • pwntools

Future work

Haven't decided, maybe better user experience.

References

Solutions of problems I encounted when programming