Tag: 低级别

原始ssh连接(低级)

作为一个小型(大型)业余爱好项目,我打算在C#中创建一个(非常原始的)ssh-2.0客户端。 这是为了探索和更好地理解DH,并帮助我的加密熟悉:) 根据RFC 4253,我已经开始了这样的初始连接: (省略不相关的变量预设等) Random cookie_gen = new Random(); while ((ssh_response = unsecure_reader.ReadLine()) != null) { MessageBox.Show(ssh_response); if (ssh_response.StartsWith(“SSH-2.0-“) { // you told me your name, now I’ll tell you mine ssh_writer.Write(“SSH-2.0-MYSSHCLIENT\r\n”); ssh_writer.Flush(); // now I should write up my supported (which I’ll keep to the required as per rfc 4253) ssh_writer.Write(0x20); // SSH_MSG_KEXINIT […]

解码git对象/“块长度与其补码不匹配”错误

我陷入了非常简单但烦人的问题,并且无法在互联网上找到答案。 希望你能指出我,我做错了什么。 我正在尝试从Git存储库中解码对象。 根据ProGit ,文件名及其内容在提交期间已被缩小。 我正在使用C#将SHA1指示的对象读入流中,将其充气并转换为字节数组。 这是代码: using System.IO.Compression; static internal byte[] GetObjectBySha(string storagePath, string sha) { string filePath = Path.Combine(storagePath, “objects”, sha.Substring(0, 2), sha.Substring(2, 38)); byte[] fileContent = null; using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using (MemoryStream ms = new MemoryStream()) { using (DeflateStream gs = new DeflateStream(fs, CompressionMode.Decompress)) { gs.CopyTo(ms); […]

如何使用低级8位标志作为条件?

在我的键盘钩子中,每个按键都会获得一个标志,指示它是否被注入。 http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx 我从lParam中提取了一个KBDLLHOOKSTRUCT。 我可以访问kbd.flags.XXX。 我只是不知道如何将这个8位标志转换为if (injected) {…类型条件,我知道如何使用。 如果你们中的一个聪明的计算机科学类型会帮助我,我真的很感激它。 private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT(); Marshal.PtrToStructure(lParam, kbd); //if (injected) {… 干杯!

C#真正的低级声音生成?

任何人都知道在C#中创建ARBITRARY声波并从扬声器播放的合理方法吗? 这个问题已经不断出现多年,我总是在经历了很多失败之后放弃了它而没有找到解决方案。 我想做的就像一个反向可视化器,也就是说,我不想从声音生成“数字”,我想从数字生成声音。 就像我提供的一个函数,我提供了采样率,样本大小和声音数据(例如一个整数数组),它会从中生成相应的wav文件(实时声音播放将是理想的,但我’对此也非常满意)。 我知道wav文件规格遍布整个interweb,并且确实做了几次创建上述function的尝试,对于低频率有一些成功,但是一旦我开始弄乱每个样本的比特等……它就变成了一个巨大的,无法控制的混乱。 这还没有以任何方式完成吗? 我不介意它使用什么,只要它有一个.NET托管包装(我可以从最近的VS访问它到时间)。 XNA不支持低级音频。 还发现了几个声称可以实现类似function的例子,但它们要么根本不起作用,要么做一些完全不同的事情。 谢谢。