我构建了一个转储内存的程序,我正在使用一种称为“ dumpty”的开源工具来制作转储内存的字符串
当我打开命令行时,使用该工具并编写以下四个命令:
- cd dumpty_folder_root
- dumpty -e repl
- 加载“转储文件名.dmp”
- 转储字符串
它工作正常,我得到了包含字符串的新文件夹
但是当我通过StreamWriter发送命令时,它在这里不起作用,您可以看到我使用的代码:
dumptyProcess.StartInfo.UseShellExecute = false;
dumptyProcess.StartInfo.RedirectStandardInput = true;
dumptyProcess.StartInfo.RedirectStandardOutput = true;
dumptyProcess.StartInfo.FileName = Path.Combine(Environment.SystemDirectory,"cmd.exe");
dumptyProcess.StartInfo.CreateNoWindow = true;
dumptyProcess.Start();
//Encoding encoding = Encoding.Default;
StreamWriter wr = dumptyProcess.StandardInput;
string str = "load \""+dumpFilePath;
//StreamWriter wr = new StreamWriter(dumptyProcess.StandardInput.BaseStream,encoding);
wr.WriteLine("cd " + Directory.getcurrentDirectory());
wr.WriteLine("dumpty -e repl");
wr.WriteLine(str);
wr.WriteLine("dumpstrings strings");
wr.Flush();
richTextBox_info.Text += "Running strings on dump file...\n";
我知道,当我使用StreamWriter时,除了加载转储文件的第三个命令之外,所有命令均有效,但我不知道为什么(同样,如果我手动执行它,则可以正常工作),我知道所有命令之所以起作用,是因为它创建了字符串文件夹,但内部没有字符串
我尝试过的事情: 1.更改转储文件名,不带空格,并更改命令不带引号 2.尝试更改dumptyProcess的编码 3.复制我在手动使用cmd时输入的每个命令,以查看它们是否起作用(确实如此)由于某些原因我无法加载转储文件,请帮助