1 - если разовая операция -
HxD
2 - если тег C# означает поиск решения на C# -
считывание байтового массива в памятьvar byte_array = File.ReadAllBytes("path_name");
, правка, запись обратно
3 - для больших файлов, работа со
Stream, конкретнее тоже легко спросить (и потом уточнять)
https://duckduckgo.com/?q=c%23+%D0%B1%D0%B8%D0%BD%...
ps
можно и на C# но зачем микроскоп когда нужен молоток, в интерфейсах замутишься
при чем здесь интерфейсы?.. и на мой взгляд, в скриптах замутишься быстрее
pps по нынешним временам, файлы в мегабайты, и даже десятки мегабайт, стоит считать малыми, большими - файлы в гигабайты.. сотни мегабайт - по ситуации (скорость дисковой системы, объем доступной памяти, сложность обработки)