Я не понимаю, почему вы хотите заменить утилиту, вместо того, чтобы просто запустить утилиту из вашего приложения.
В любом случае, вы можете запустить «dumpbin / import whatevertheutilitynameis .exe», чтобы увидеть статический список имен функций API, с которыми связана утилита; здесь не отображается ни последовательность их вызова, ни значения параметров.
Затем вы можете использовать системный отладчик (например, Winice или любой его более современный аналог) для установки точек останова на этих API, так что вы можете взломать отладчик (и затем проверить значения параметров), когда утилита вызывает эти API .