我想编程64位窗口程序集(最好使用NASM).我看起来相当不错但谷歌似乎我找不到64位Windows编译器.有些网站提到了ml64,但似乎它已不再包含在VC++中了.我试过32位汇编,但显然它只是在我的64位机器上崩溃了.是否可以在64位Windows机器上编写,编译和运行32位汇编应用程序?还是应该为64位编写和编译?
谢谢.
我有兴趣编写一个可以执行类似netcats"nc -L -d -p -t -e cmd.exe"命令的程序.所以它提供了一个远程shell.我已尝试管道输出和从cmd.exe输入和输入,并通过套接字发送和接收它,但它似乎并没有真正起作用.有没有其他方法可以做到这一点?我顺便用C#编程.
这是我编写的一些测试代码,用于测试我是否可以创建自己的"shell".这个的输出是应该通过套接字发送的.但是,当它成为读取输出的时间时,程序停止.这只能通过使用.readline()方法来解决,但我不知道如何检测它何时不应再读取行.
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.Start();
StreamReader sr = p.StandardOutput;
StreamWriter sw = p.StandardInput;
while (true)
{
Console.Write(">> ");
string cmd = Console.ReadLine();
sw.WriteLine(cmd);
var resp = sr.ReadLine();
Console.WriteLine(resp);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试创建一个小型汇编程序来创建一个文件夹.我查找了系统调用以在此页面上创建目录.它说它是在27h之前确定的.我将如何实施mkdir somename组装?
我知道该程序应该将27变为eax,但我不确定下一步该去哪里.我搜索了相当多的内容,似乎没有人在网上发布过关于此问题的内容.
这是我目前的代码(我不知道在哪个寄存器中放置文件名等):
section .data
section .text
global _start
mov eax, 27
mov ????????
....
int 80h
Run Code Online (Sandbox Code Playgroud)
谢谢