ImGui.NET, a library for it and it has examples on how to use it.
dnSpy, just so you can see what's what inside Terraria.
Might want to learn C# too, just in case you don't already know the basics.
The general idea is you create a program that loads Terraria in memory and applies patches to it. You can do this with MonoMod or HarmonyX.
Check my sig too if you want to contact me for anything else. GL.