当前位置: 代码迷 >> C语言 >> [求助]问个问题:运行什么样代码会对系统有影响
  详细解决方案

[求助]问个问题:运行什么样代码会对系统有影响

热度:424   发布时间:2007-09-02 23:53:10.0
[求助]问个问题:运行什么样代码会对系统有影响
有影响的定义是:硬盘文件内容有改变,系统参数有改变(系统时间,BIOS,环境变量),
系统状态改变(关机,休眠,待机),系统进程数目或者线程数目直接因此变化,
系统其它进程的运行状态因此产生直接的变化等等

在不能#include <windows.h>的情况下,什么样的代码可能产生如上的影响?
请写上函数名和要包含的头文件或者声明,可以的话给一份简单的程序。

例如可以操作文件的有freopen,fopen,fclose,fread,fwrite,....
后面的省略,因为只要阻止了fopen和freopen,后面的就不起作用了,
C++的有ifstream,ofstream,
头文件stdio.h, iostream.h, iostream, cstdio

对于非标准的C/C++代码如WinAPI函数,请最好给出例子讲解一下如何
在不能#include <windows.h>的情况下进行调用。。。
提供的越多越好。。。谢谢啦~~~




by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]

[此贴子已经被作者于2007-9-3 0:10:00编辑过]

搜索更多相关的解决方案: 系统  windows  代码  什么样  

----------------解决方案--------------------------------------------------------
system()函数调用DOS操作可以实现一些
----------------解决方案--------------------------------------------------------
还有没有?



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
内联汇编
----------------解决方案--------------------------------------------------------
以下是引用totohack在2007-9-3 17:31:01的发言:
内联汇编

不能使用汇编



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------

我举一个例子吧(C强制重启代码):

#define PB_ID 1
#include <stdio.h>
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "User32.lib")
#pragma comment(lib, "Advapi32.lib")

typedef void *HANDLE;
typedef struct _LUID {
unsigned long LowPart;
long HighPart;
} LUID, *PLUID;

typedef struct _LUID_AND_ATTRIBUTES {
LUID Luid;
unsigned long Attributes;
} LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES;

typedef struct _TOKEN_PRIVILEGES {
unsigned long PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[1];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;


#define FALSE false
#define TOKEN_QUERY (0x0008)
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
#define SE_PRIVILEGE_ENABLED (0x00000002L)

#define EWX_LOGOFF 0
#define EWX_SHUTDOWN 0x00000001
#define EWX_REBOOT 0x00000002
#define EWX_FORCE 0x00000004
#define EWX_POWEROFF 0x00000008

#define SE_SHUTDOWN_NAME ("SeShutdownPrivilege")
extern "C" __declspec(dllimport) int __stdcall LookupPrivilegeValueA(char *,char *,PLUID);
extern "C" __declspec(dllimport) int __stdcall OpenProcessToken(void *,unsigned long,void **);
extern "C" __declspec(dllimport) HANDLE __stdcall GetCurrentProcess(void);
extern "C" __declspec(dllimport) int __stdcall ExitWindowsEx(unsigned int,unsigned long);
extern "C" __declspec(dllimport) int __stdcall AdjustTokenPrivileges

(HANDLE,int,PTOKEN_PRIVILEGES,unsigned long,PTOKEN_PRIVILEGES,unsigned long *);

int main()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);

LookupPrivilegeValueA(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);

return 0;
}


----------------解决方案--------------------------------------------------------
可以利用socket修改网络信息
不知道这个算不算
----------------解决方案--------------------------------------------------------
以下是引用酒肉弥勒佛在2007-9-3 17:49:49的发言:
可以利用socket修改网络信息
不知道这个算不算

算!!请讲解一下,谢谢~~~~~~~~
----------------解决方案--------------------------------------------------------

以下是引用雨中飞燕在2007-9-2 23:53:10的发言:
有影响的定义是:硬盘文件内容有改变,系统参数有改变(系统时间,BIOS,环境变量),
系统状态改变(关机,休眠,待机),系统进程数目或者线程数目直接因此变化,
系统其它进程的运行状态因此产生直接的变化等等

在不能#include <windows.h>的情况下,什么样的代码可能产生如上的影响?
请写上函数名和要包含的头文件或者声明,可以的话给一份简单的程序。

例如可以操作文件的有freopen,fopen,fclose,fread,fwrite,....
后面的省略,因为只要阻止了fopen和freopen,后面的就不起作用了,
C++的有ifstream,ofstream,
头文件stdio.h, iostream.h, iostream, cstdio

对于非标准的C/C++代码如WinAPI函数,请最好给出例子讲解一下如何
在不能#include <windows.h>的情况下进行调用。。。
提供的越多越好。。。谢谢啦~~~




by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
有人在你OJ上提交恶意代码
----------------解决方案--------------------------------------------------------

很多OJ都不能time.h
所以我推测这里面也有一些能修改时间的函数..


----------------解决方案--------------------------------------------------------