是否有可能伪造 Windows 控制台 api?

2023-12-30

我用 C# 编写了一个 ssh 服务器,我认为将 powershell 作为 shell 连接起来会很漂亮。我尝试了两种方法来使其正常工作,但这两种方法都远非完美。这是我尝试过的:

  1. 启动 powershell.exe 并将其重定向到 std(in/out)。这不 工作良好,因为 powershell.exe 检测到它被重定向,发生变化 这是行为。更重要的是,它期望 stdid 上的输入数据,而不是 命令。所以它使用控制台api来读取命令。
  2. 在“包装”应用程序中托管 powershell。这样做的好处是 能够为 powershell 提供“控制台”实现(通过 PSHostRawUserInterface)。这效果更好,但您仍然可以调用 命令(主要是真正的控制台应用程序),例如“... | more”,期望 能够使用控制台 api,然后尝试从 包装器进程的控制台。

所以我想做的是用一组函数替换控制台应用程序使用的常规控制台输入/输出函数,这样我就可以处理它们。但这似乎相当激烈,以至于成为一个糟糕的设计理念(我认为)。

现在,我的想法是通过使用 WriteConsoleInput 等本机/Pinvoke 函数发送相关键来操作控制台。我猜想也许可以通过这种方式伪造控制台。但我不知道如何“读取”控制台上发生的情况。

另请记住,它是一项服务,因此最好不要生成实际的控制台窗口,尽管可能在 Windows 会话 0 中不会显示并且无关紧要。


你有PS会话 http://technet.microsoft.com/en-us/library/dd347706.aspx为此,请使用 Enter-PSSession CmdLet。你的 Powershell SSH 会做什么而 PSSession 不会做什么?

但如果你想这样做,这里有一个无需编写任何内容的解决方案:通过 SSH 使用 PowerShell http://hivearchive.com/2006/07/03/using-powershell-through-ssh/


已编辑 2011 年 2 月 11 日

内部 PowerShell http://www.powershellinside.com/powershell/ssh/download.aspx提供另一种无需编写任何内容的方法(免费供个人使用)。

Host03样本 http://msdn.microsoft.com/en-us/library/windows/desktop/ee706577%28v=VS.85%29.aspx,也许可以提供基本代码来完成您想做的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可能伪造 Windows 控制台 api? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 如何在android中以编程方式将图像添加到图库或以编程方式刷新图库

    我正在将一些图像从服务器下载到 SD 卡的文件夹中 图像已成功存储到 SD 卡中 但问题是 同时图像没有显示在图库中 如果我重新启动设备 它将显示在图库中 如何以编程方式刷新图库 以便每当我从服务器获取图像时都可以同时看到图像 我明白了 下
  • MySQL 持久连接

    我有10个应用服务器和1个mysql数据库 我想为 mysql 做连接池 但简单地启用 mysql pconnect 是行不通的 因为它会导致某些服务器比其他服务器拥有更多的连接 这种情况的最佳解决方案是什么 为什么要使用持久连接 它们可能
  • 如何从 DTD 或 XSD 生成示例 XML 文档?

    我们正在开发一个涉及大量 XML 转换的应用程序 我们本身没有任何正确的输入测试数据 只有 DTD 或 XSD 文件 我们想从这些文件中生成我们的测试数据 有没有一种简单 免费的方法可以做到这一点 Edit 显然没有免费的工具可以做到这一点
  • imagecreatefrompng 错误

  • warning(junit.framework.TestSuite$1): 通过 Maven 执行 Android Test 时构造函数中出现异常

    我通过 Maven 设置了一个 Android 测试项目 并按照以下说明进行操作here http code google com p maven android plugin wiki AutomateAndroidTestProject
  • 如何解析代码以构建 Java 编译器?

    我需要写一个编译器 这是大学的家庭作业 老师告诉我们 我们可以使用任何我们想要的API来进行代码的解析 只要它是好的 这样我们就可以更加关注我们将生成的 JVM 所以是的 我将用 Java 编写一个编译器来生成 Java 你知道有什么好的A
  • 快速播放活动 UITableView 单元格中的视频

    目标 我正在尝试在完全可见的单元格 可能是 2 3 或 1 中播放视频 并且应该以不可见的方式停止cell 我在用UITableview with AVPlayer 我的桌面视图充满了视频列表 目前我正在使用捆绑包中的视频 我使用了下面的代
  • Sybase 令牌数据流长度不正确

    将二进制文件保存到图像列时出现以下错误 org springframework jdbc UncategorizedSQLException PreparedStatementCallback SQL 的未分类 SQLException 插
  • 如何将 DataSnap 客户端连接定向到各种 DS Server?

    我有一个相当大的 DataSnap 服务器 它将 24 7 运行 它将替代当前运行的 MIDAS COM 服务器 现在我面临的问题是如何更新该服务器而不必强制断开所有连接的客户端 使用当前的 midas 服务器 顺便说一下 没有大量的流量可
  • 将某些工作表从 Excel 工作簿导出为 PDF

    我正在编写一个 VBA 代码 将 Excel 中的一些工作表导出到同一个 PDF 我的 Excel 文件中有几个图表工作表 每个图表工作表的名称都以 name Chart 结尾 我想将名称以图表结尾的所有工作表导出到一个 PDF 文件 这是
  • 在 C/C++ 中获取大随机数

    标准rand 函数给出的数字对我来说不够大 我需要unsigned long long那些 我们如何获得非常大的随机数 我尝试修改一个简单的哈希函数 但它太big 运行时间太长 并且永远不会产生小于 1e5 的数字 你可以轻松地做到这一点s
  • Android 自定义 Widget 膨胀异常

    XML
  • 自定义 li 列表样式,带有很棒的字体图标

    我想知道是否可以利用 font awesome 或任何其他标志性字体 类来创建自定义 li 列表样式类型 我目前正在使用 jQuery 来执行此操作 即 li myClass prepend i class i 然而 当 li li 文本环
  • POST Restful API 的响应代码 400 或 403

    我正在设计一个 POST Restful API 在这种情况下 我必须根据请求正文中提供的元素之一来授权用户 例如 division 1 name MyName address no 123 street abc pincode 22211
  • Minimongo 尚不支持投影中的 $ 运算符

    我有这个文件 username torayeff profile friends id aSD4wmMEsFnYLcvmP state active id ShFTXxuQLAxWCh4cq state active id EQjoKMNB
  • 如何在android的WebView中显示滚动条

    是否可以在 android 的 WebView 中显示可滚动 html 元素的滚动条 怎么做 in your onCreate 方法 试试这个 Override public void onCreate Bundle savedInstan
  • ASP.NET Web API JSON 输出中没有时间的日期

    有没有一种简单的方法来配置 JSON NET 以便some DateTime字段将被格式化 没有时间和其他DateTime字段仍会随时间格式化吗 例子 firstName John lastName Doe birthday 1965 09
  • vbscript 调试器[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个可以在开发中使用的 vbscript 但不能在服务器上使用 我想调试这个 但我不想在服务器上安
  • 当我们使用rest api进行调用时,我们在该url参数上使用什么twiml

    我正在使用其余 api 创建呼叫 try Initiate a new outbound call call this gt client gt calls gt create to call num2 Step 5 Change the
  • 是否有可能伪造 Windows 控制台 api?

    我用 C 编写了一个 ssh 服务器 我认为将 powershell 作为 shell 连接起来会很漂亮 我尝试了两种方法来使其正常工作 但这两种方法都远非完美 这是我尝试过的 启动 powershell exe 并将其重定向到 std i