首页
实用工具
我的旅程
在线壁纸
更多
✒️ 问题反馈
📦 文章统计
🌍 国内镜像
🎬 次元视界
📒 流水账本
🎨 在线 PS
推荐
🕵️ 开源情报
🌆 图片压缩
🍭 资产清洗
💡 我的作品
👤 关于站长
⚔️ 次 元 剑
搜索
1
【工具分享】逆向工具箱 - 次元剑
89,538 阅读
2
【技术分享】PE文件结构分析 ( RVA转FOA )
7,350 阅读
3
【技术分享】NASM x86 Assembly Language
5,982 阅读
4
【技术分享】CK竞技之王游戏辅助制作
3,725 阅读
5
【每日随记】天涯明月刀无限飞修改思路
2,816 阅读
技术分享
CTF解题
英语笔记
数学笔记
网络通信
每日随记
攻防技术
工具分享
Search
标签搜索
Windows
Web安全
Python3
Linux
逆向工程
CTF
红队技术
人工智能
C/C++
黑客工具
Go
密码学
二进制安全
数学
漏洞挖掘
Android
eNSP
渗透测试
蓝队技术
黑客大会
发光的神
累计撰写
160
篇文章
累计收到
103
条评论
首页
栏目
技术分享
CTF解题
英语笔记
数学笔记
网络通信
每日随记
攻防技术
工具分享
页面
实用工具
我的旅程
在线壁纸
✒️ 问题反馈
📦 文章统计
🌍 国内镜像
🎬 次元视界
📒 流水账本
🎨 在线 PS
推荐
🕵️ 开源情报
🌆 图片压缩
🍭 资产清洗
💡 我的作品
👤 关于站长
⚔️ 次 元 剑
搜索到
52
篇与
的结果
2017-05-26
【技术分享】操作系统常用命令
Linux 通用命令1. 目录与文件管理命令功能说明实用示例ls显示目录内容ls -la(显示所有文件,含隐藏文件+详细信息)、ls -lh(人性化显示文件大小)cd切换目录cd /usr/local(进入指定目录)、cd ..(返回上级)、cd ~(回到家目录)、cd -(返回上一次所在目录)pwd查看当前工作路径直接执行,无参数mkdir创建文件夹mkdir -p /data/test(递归创建多级目录)、mkdir -m 755 testdir(创建指定权限的目录)touch创建空文件/更新文件时间戳touch test.txt、touch -d "2026-03-24" test.txt(修改文件时间戳)cp复制文件/目录cp -r /src /dest(-r递归复制目录)、cp -p file1 file2(保留文件属性)mv移动/重命名文件mv old.txt new.txt(重命名)、mv file /tmp(移动)、mv -i file /tmp(覆盖前提示)rm删除文件/目录rm -rf /tmp/test(-r删目录,-f强制删除)、rm -i file.txt(删除前提示)cat查看文件内容cat -n test.txt(显示行号)、cat file1 file2 > file3(合并文件)more/less分页浏览文件less test.log(支持上下翻页、搜索,按q退出)、more +10 test.txt(从第10行开始显示)head/tail查看文件开头/尾部head -10 test.log(前10行)、tail -f test.log(实时监控尾部)、tail -n +5 test.txt(从第5行到末尾)chmod修改文件权限chmod 755 script.sh(赋予执行权限)、chmod -R 777 /data(递归改目录权限)、chmod u+x script.sh(仅给属主加执行权限)chown修改文件属主/属组chown user:group test.txt、chown -R root:root /datastat查看文件详细属性stat test.txt(显示大小、权限、修改时间等)which查找命令/文件路径which python3(查找python3安装路径)locate快速查找文件(基于数据库)locate passwd(查找passwd相关文件)、updatedb(更新locate数据库)find实时查找文件find / -name "*.log"(按名称查找)、find /var/log -size +100M(查找大于100M的文件)2. 用户与权限管理命令功能说明示例useradd创建用户useradd -m testuser(-m自动创建家目录)、useradd -s /bin/bash -d /home/test testuser(指定shell和家目录)userdel删除用户userdel -r testuser(-r删除家目录)passwd修改用户密码passwd testuser(修改testuser密码)、passwd -l testuser(锁定用户)who查看在线登录用户直接执行whoami查看当前登录用户直接执行su/sudo切换用户/提权su root(切换到root)、sudo ls /root(临时提权执行命令)hostname查看/修改主机名hostname(查看)、hostname new-host(临时修改)、hostnamectl set-hostname new-host(永久修改)id查看用户UID/GIDid testuser(查看用户身份信息)3. 进程管理命令功能说明示例ps查看进程状态ps -ef(全量进程)、ps -eftop动态监控资源占用最高的进程直接执行,按q退出、top -p 1234(仅监控指定PID进程)htop增强版tophtop(更友好的进程监控界面,需安装)kill终止进程kill -9 1234(-9强制杀死PID为1234的进程)、killall nginx(按进程名杀死所有实例)history查看/清除历史命令history(查看)、history -c(清除)、!100(执行历史记录中第100条命令)nohup后台运行进程nohup ./script.sh > output.log 2>&1 &(后台运行脚本并记录日志)4. 网络管理命令功能说明示例ifconfig查看/配置网卡信息(旧版)ifconfig eth0(查看eth0网卡)、ifconfig eth0 192.168.1.100 netmask 255.255.255.0(设置IP)ip addr查看/配置网卡信息(新版)ip addr show(查看所有网卡)、ip addr add 192.168.1.100/24 dev eth0(设置IP)ping测试网络连通性ping -c 4 192.168.1.1(发送4个数据包)、ping -i 0.5 -c 10 8.8.8.8(每隔0.5秒ping一次,共10次)netstat查看网络连接/端口netstat -tulnp(查看监听端口+对应进程)、netstat -ano(Linux兼容格式)ss替代netstat的新命令ss -tulnp(更快的端口查看命令)grep文本过滤/搜索grep "error" test.log(查找日志中的错误)、grep -i "Error" test.log(忽略大小写)、grep -r "test" /etc(递归搜索目录)curl/wget网络下载/测试curl www.baidu.com(测试网页访问)、wget https://xxx.com/file.tar.gz(下载文件)nmap端口扫描(Kali/CentOS需安装)nmap 192.168.1.1(扫描指定IP开放端口)5. 系统管理命令功能说明示例uname查看系统信息uname -a(显示内核版本、主机名、系统架构等)、uname -r(仅显示内核版本)systemctl管理系统服务(CentOS7+/Kali/Ubuntu)systemctl start mysqld(启动服务)、systemctl status nginx(查看状态)、systemctl enable sshd(设置开机自启)、systemctl disable firewalld(关闭开机自启)service兼容旧版服务管理service sshd restart(重启ssh服务)shutdown关机/重启shutdown -r now(立即重启)、shutdown -h 20:00(20点关机)、shutdown -c(取消关机计划)df/du磁盘空间查看df -h(人性化显示磁盘使用)、du -sh /data(查看目录总大小)free内存查看free -h(人性化显示内存使用)uptime系统运行时间uptime(查看系统运行时长、负载)6. Kali Linux 专属命令命令功能说明示例wine运行Windows EXE程序wine xxx.exewinecfg配置WINE运行环境直接执行,图形化配置apt-get/apt包管理apt update(更新源)、apt install wine(安装软件)msfconsoleMetasploit控制台(Kali核心)msfconsole(启动渗透测试框架)nmap端口扫描(Kali预装)nmap -sS 192.168.1.0/24(SYN扫描网段)7. CentOS 专属命令命令功能说明示例date查看/修改系统时间date(查看)、date -s "2026-03-24 10:00"(修改)、hwclock -w(同步到硬件时钟)w查看登录用户及当前操作直接执行(比who更详细)awk文本处理工具awk -F: '{print $1}' /etc/passwd(提取所有用户名)systemctl list-unit-files查看所有服务开机自启状态systemctl list-unit-filesyum/dnfCentOS包管理yum install nginx(安装软件)、yum remove nginx(卸载)、yum update(更新系统)firewall-cmd防火墙管理firewall-cmd --list-ports(查看开放端口)、firewall-cmd --permanent --add-port=80/tcp(永久开放80端口)Windows DOS/CMD 命令1. 目录与文件管理命令功能说明示例cd切换目录cd D:\tools、cd ..(返回上级)、cd /d E:\test(跨盘符切换)dir列出目录内容dir /a(显示所有文件,含隐藏/系统文件)、dir /s(递归显示子目录)、dir /b(仅显示文件名)、dir /p(分页显示)tree生成目录树tree D:\data(显示指定目录结构)、tree /f D:\data(显示文件和目录)mkdir创建文件夹mkdir test(等价于md test)、md test1\test2\test3(递归创建多级目录)rd删除目录rd /s /q test(/s删目录及内容,/q静默删除)del删除文件del .tmp(删除所有临时文件)、del /f /s /q D:\tmp*.(强制删除目录下所有文件)copy/move复制/移动文件copy src.txt D:\dest、move old.txt newdir、xcopy D:\src D:\dest /s/e(递归复制目录)type查看文件内容type test.txt、type test.txtecho输出内容/创建文件echo 测试内容 > new.txt(创建并写入)、echo off(关闭命令回显)、echo 追加内容 >> new.txt(追加内容)ren重命名文件/目录ren old.txt new.txt、ren D:\olddir newdir2. 系统管理命令功能说明示例hostname查看主机名直接执行systeminfo查看系统详细信息systeminfotasklist查看进程列表tasklisttaskkill终止进程taskkill /f /pid 1234(/f强制杀死PID=1234的进程)、taskkill /f /im chrome.exe(按进程名杀死)taskmgr打开任务管理器直接执行net user管理本地用户net user(查看所有用户)、net user test 123456 /add(创建用户)、net user test /del(删除用户)net localgroup管理用户组net localgroup Administrators test /add(将test加入管理员组)shutdown关机/重启/注销shutdown -s -t 60(60秒关机)、shutdown -r now(立即重启)、shutdown -a(取消关机)、logoff(注销当前用户)sfc /scannow扫描并修复系统文件管理员权限执行,修复损坏的系统文件chkdsk磁盘检测修复chkdsk C: /f(修复C盘错误,需重启)format格式化磁盘format D: /fs:NTFS /q(快速格式化D盘为NTFS)、format D: /fs:FAT32(格式化为FAT32)convert转换磁盘格式(无损)convert D: /fs:NTFS(将FAT32转为NTFS)3. 网络管理命令功能说明示例ipconfig查看网卡/IP信息ipconfig /all(显示详细信息)、ipconfig /release(释放IP)、ipconfig /renew(重新获取IP)、ipconfig /flushdns(清空DNS缓存)ping测试网络连通性ping -n 4 192.168.1.1(发送4个数据包)、ping -t www.baidu.com(持续ping)、ping -l 1024 www.baidu.com(指定数据包大小)netstat查看网络连接netstat -ano(显示连接+PID+端口)、netstat -b(显示连接对应的程序)、netstat -rn(查看路由表)arp -a查看ARP缓存表直接执行,显示IP-MAC映射、arp -d 192.168.1.1(删除指定ARP记录)nslookup解析域名/查询DNSnslookup www.baidu.com(查询域名IP)、nslookup www.baidu.com 8.8.8.8(指定DNS服务器解析)tracert路由追踪tracert www.baidu.com(查看数据包路由路径)、tracert -d www.baidu.com(不解析IP为域名,加快速度)route print查看路由表直接执行、route add 0.0.0.0 mask 0.0.0.0 192.168.1.1(添加默认网关)net view查看局域网共享主机net view \192.168.1.100(查看指定主机共享)、net view(查看局域网所有主机)net use映射网络驱动器net use Z: \192.168.1.100\share(映射共享文件夹到Z盘)netsh配置网络(网卡/Wi-Fi)netsh wlan show profiles(查看保存的Wi-Fi)、netsh wlan show profile name="WiFi名称" key=clear(查看Wi-Fi密码)、netsh interface ip set address "以太网" static 192.168.1.100 255.255.255.0 192.168.1.1(设置静态IP)4. 高级管理命令命令功能说明示例regedit打开注册表编辑器直接执行gpedit.msc打开组策略编辑器(专业版/企业版)直接执行wmic系统信息查询(强大)wmic process where processid=41176 get commandline,name,path(查看指定PID进程的命令行/路径)、wmic diskdrive get size,model(查看磁盘信息)Get-CimInstance(PowerShell)进程/系统信息查询Get-CimInstance -ClassName Win32_Process -Filter "ProcessId=41176" / Select-Object CommandLine, Name, Pathpowershell启动PowerShellpowershell(切换到PowerShell环境)cmdkey查看/管理凭据cmdkey /list(查看保存的网络凭据)5. Windows 常用快捷键快捷键功能说明示例Win + E打开文件资源管理器直接按下快捷键即可触发Win + D快速显示桌面直接按下快捷键即可触发Win + L锁定计算机直接按下快捷键即可触发Alt + F4关闭当前窗口/调出关机菜单直接按下快捷键即可触发Ctrl + Shift + Esc直接打开任务管理器直接按下快捷键即可触发Alt + Tab切换已打开的窗口直接按下快捷键即可触发Win + Tab打开任务视图(多桌面)直接按下快捷键即可触发Ctrl + F在文本/网页中搜索内容直接按下快捷键即可触发Ctrl + A全选当前内容直接按下快捷键即可触发Ctrl + C/V/X复制/粘贴/剪切直接按下快捷键即可触发Win + +打开放大镜工具直接按下快捷键即可触发Win + R打开运行对话框直接按下快捷键即可触发Ctrl + Z/Y撤销/重做直接按下快捷键即可触发Win + S打开搜索框直接按下快捷键即可触发Ctrl + Shift + N在文件管理器中新建文件夹直接按下快捷键即可触发远程桌面(RDP)管理命令命令功能说明示例开启远程桌面启用RDP服务(管理员权限)REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f关闭远程桌面禁用RDP服务(管理员权限)REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f开放RDP端口(3389)防火墙放行(管理员权限)netsh advfirewall firewall add rule name="RemoteDesktop" dir=in action=allow protocol=TCP localport=3389查看RDP端口检查远程桌面端口reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber网络连接状态说明状态含义常见场景LISTENING监听状态:端口已开放,等待外部连接服务端程序启动后监听端口(如nginx监听80端口)ESTABLISHED已建立连接:双方正在传输数据正常的TCP连接(如浏览器访问网页、SSH连接)CLOSE_WAIT等待关闭:被动关闭连接,本地等待应用程序关闭对方已关闭连接,但本地程序未及时释放TIME_WAIT超时等待:主动关闭连接后,等待确认对方关闭主动断开连接后,系统保留端口一段时间(通常2MSL)FIN_WAIT_1关闭过程中:本地发起关闭请求,等待对方响应TCP四次挥手第一步,本地发FIN包等待ACKFIN_WAIT_2关闭过程中:收到对方ACK,等待对方FIN包TCP四次挥手第二步LAST_ACK最后确认:被动关闭后,等待对方确认关闭被动关闭方发FIN包后,等待对方ACKSYN_SENT发起连接:本地发送SYN包,等待对方确认客户端发起TCP连接请求SYN_RECEIVED接收连接:收到对方SYN包,等待本地确认服务端收到SYN包,准备建立连接CLOSED关闭状态:连接已完全关闭无活跃连接
2017年05月26日
77 阅读
0 评论
5 点赞
2017-05-01
【技术分享】认识汇编寄存器 ( 复习 )
寄存器是什么?寄存器是计算机内部存储器的一部分,用于临时保存数据,供CPU进行快速处理。它们在计算机架构中扮演着非常重要的角色,是CPU最直接、最快速的数据存储单元。寄存器通常可以分为不同的类别,包括通用寄存器、指令指针寄存器、标志寄存器等,每种寄存器有其特定的用途。寄存器与内存寄存器:像是“顺丰快递”,速度快,但数量少。主要用于存储CPU频繁使用的数据。内存:像是“普通快递”,便宜且数量多。它的存储容量远超寄存器,通常用于存储程序和数据。在程序运行时,数据优先存储在寄存器中,因为其访问速度比内存快。然而,由于寄存器数量有限,大部分数据还是存放在内存中。寄存器的种类16位寄存器(早期处理器使用)AX、BX、CX、DX:通用寄存器,分别可以用作累加器、计数器、数据寄存器等。SI、DI:用于存储字符串操作中的源指针和目的指针。BP、SP:栈指针寄存器,SP用于指向栈顶,BP用于存储堆栈数据。IP:指令指针,指向当前执行的指令。32位寄存器(现代处理器常用)EAX、EBX、ECX、EDX:通用寄存器,作用与16位寄存器类似,但具有更大的存储范围。ESI、EDI、EBP、ESP、EIP:分别用于字符串操作、堆栈管理和指令指针。32位寄存器可以存储的最大数值为 0~0xFFFFFFFF,即 0 到 42亿。64位寄存器(当前处理器标准)RAX、RBX、RCX、RDX:通用寄存器,功能和32位类似,但存储容量增大。RSI、RDI:用于指向源和目的地址的指针寄存器。RIP:64位指令指针寄存器,指向下一个将要执行的指令。64位寄存器可以存储的最大数值为 0~0xFFFFFFFFFFFFFFFF,即 0 到 18446744073709551615。寄存器的作用EAX:通常用于存储函数的返回值。ECX:常用作计数器,保存循环次数,也可用于传递参数。EDX:用于传递额外参数。ESI、EDI:用于字符串操作中的源和目的指针。例如,汇编指令:rep movs dword ptr [edi], dword ptr [esi];此指令的意思是将 esi 地址的内容拷贝到 edi 地址,常用于字符串复制时。EAX寄存器的使用EAX寄存器是32位通用寄存器,用于存储函数返回值或临时数据。可以通过 mov 指令来向寄存器中存值。mov eax, 6 // 将值6存入eax mov eax, ebx // 将ebx的值存入eax寄存器的存储范围通用寄存器的存储范围由其位数决定。例如,32位的寄存器能够存储的最大数值为 0xFFFFFFFF,这是十六进制中的最大数值。0xFFFFFFFF:这是32位寄存器的最大值,对应的二进制是 11111111 11111111 11111111 11111111,共32位。16进制数 F 代表的是 1111(二进制),一个 F 代表4位。所以,0xFFFFFFFF 就是 8 个 F,每个 F 占 4 位,总共32位。这个值对应的 十进制 数是 4294967295。因此,一个32位的寄存器能存储的范围是 0 到 4294967295。AX寄存器的用法虽然 EAX 是32位寄存器,AX 是 EAX 的低16位部分,它主要用于节省内存空间。当你只需要存储16位的数据时,使用 AX 可以避免占用完整的32位寄存器空间。EAX:是一个32位寄存器,存储范围是 0 到 4294967295(十进制)。AX:是 EAX 的低16位,存储范围是 0 到 65535(十进制)。例如,假设我们将 0xFFFF 存入 AX:mov ax, 0xFFFF // 将FFFF(十六进制)存入AX这个指令的意思是将 0xFFFF 存储到 AX 中,这时只有低16位的数据被存入寄存器,而不会影响到 EAX 中的高16位。因此,这种做法能够节省内存空间,特别是在只需要16位数据时。al, ah寄存器------- ax FF ----------- FF ah(high) --- al(low) FF 一个F有4位 2 * 4 = 8 ah 可以存高4位 al 可以存低4位 mov al, 0x11 // 往eax存入11 mov ah, 0x22 // 把ebx的值存入22其它寄存器的操作都是一样的这里就不过多演示了汇编中的操作码1. EIP 指针寄存器作用:EIP(Extended Instruction Pointer)寄存器保存下一条要执行的指令的地址。每执行完一条指令,EIP 会自动更新为下一条指令的地址。用途:帮助控制程序的执行流程。2. 标志寄存器标志寄存器用来表示运算结果的状态。常见的四个重要标志位如下:ZF (Zero Flag):如果运算结果为 0,ZF = 1,否则 ZF = 0。SF (Sign Flag):SF 表示运算结果的符号位,SF = 0 表示正数,SF = 1 表示负数。CF (Carry Flag):用于无符号数的进位或借位。如果产生进位或借位,CF = 1,否则为 0。OF (Overflow Flag):用于有符号数的溢出情况。如果运算结果超出了能表示的范围,OF = 1,否则为 0。这些标志位会被不同的指令影响,例如:add 指令会影响进位标志(CF)。cmp 指令会影响零标志位(ZF)。3. 条件跳转指令根据标志寄存器中的标志位,汇编语言提供了多种条件跳转指令,用于控制程序流。常见的条件跳转指令包括:JE (Jump if Equal):如果零标志 ZF 为 1,则跳转。JNE (Jump if Not Equal):如果零标志 ZF 为 0,则跳转。JZ (Jump if Zero):如果零标志 ZF 为 1,则跳转。JNZ (Jump if Not Zero):如果零标志 ZF 为 0,则跳转。JC (Jump if Carry):如果进位标志 CF 为 1,则跳转。JNC (Jump if No Carry):如果进位标志 CF 为 0,则跳转。JO (Jump if Overflow):如果溢出标志 OF 为 1,则跳转。JNO (Jump if No Overflow):如果溢出标志 OF 为 0,则跳转。这些条件跳转指令常用于控制循环、判断等逻辑操作。4. 常用指令mov:用于将数据从一个位置传送到另一个位置。示例:mov eax, dword ptr ds:[0x19FF74],将内存地址 0x19FF74 处的数值加载到 eax 寄存器。示例:mov dword ptr ds:[0x19F30], 0x123,将 0x123 存储到 0x19F30 地址。lea:将一个内存地址加载到寄存器中。示例:lea eax, dword ptr ds:[0x19f300],将 0x19F30 地址加载到 eax 寄存器。5. CE 自动汇编常用命令alloc:分配内存。示例:alloc(newmem, 0x1000),分配 0x1000 字节的内存给 newmem。dealloc:释放分配的内存。createthread:创建一个远程线程。示例:createthread(newmem),在分配的内存 newmem 中创建线程。db 和 dd:分别用于写字节和双字数据。示例:db 90 90 90 90(写入字节数据),dd 0 0 0 0(写入双字数据)。registersymbol:注册符号,用于标记全局变量。示例:registersymbol(newmem),将 newmem 注册为全局符号。jmp:跳转指令。示例:jmp 00520000,跳转到地址 0x520000。示例:jmp newmem+50,跳转到 newmem 地址偏移 50 的位置。6. 数据表示汇编语言中的数据可以使用不同的方式进行赋值:mov eax, 63:将十六进制数 63(即 99 十进制)赋值给 eax。mov eax, #99:强制使用十进制表示法。push 63; pop eax:先将 63 压入栈,再弹出到 eax,这比直接使用 mov 指令稍短。如果需要处理浮点数,可以使用浮点数计算工具,将浮点数转换为十六进制。这里我提供了Cheat Engine Wiki 文档。Cheat engineAOB 注入首先找到数值在内存的地址。然后找出是什么改写了它。找到内存反汇编区域。选择工具自动汇编。选择AOB注入方式。
2017年05月01日
628 阅读
0 评论
30 点赞
2016-04-08
【网络通信】OSI七层模型和五层模型
TCP/IP五层模型在我们平时上网刷视频、发微信、逛淘宝,背后全靠TCP/IP五层模型在“默默干活”!这五层就像工厂的流水线,一层接一层处理数据,从用户点击操作到数据传到对方设备,每一层都有明确的分工,缺一不可。我把这五层的作用、协议和实际应用掰扯清楚,用大白话记下来,方便后续复习,也能搞懂平时上网遇到的一些小问题(比如ping不通、网页打不开可能出在哪个层)。先放一张OSI参考模型和TCP/IP五层模型的对应关系图,看着更直观——TCP/IP把OSI的应用层、表示层、会话层合并成了一层,更简洁实用:再补个详细对比表,把每层的核心作用也写上,一目了然:OSI参考模型TCP/IP五层模型核心作用应用层应用层直接对接用户App,比如微信、浏览器表示层-功能并入应用层,负责数据格式转换、加密等会话层-功能并入应用层,负责建立、维护通信会话传输层传输层确保数据在两台设备间“靠谱”传输网络层网络层给数据找路线,从源主机送到目标主机数据链路层数据链路层同一局域网内“送货上门”物理层物理层把数据变成电信号/光信号,通过网线、光纤传输第5层 应用层(最上层,直接对接用户)应用层是TCP/IP协议栈的“门面”,直接给咱们用的App提供服务接口。它不管数据怎么在网络上跑,只关心“用户要干什么”——比如浏览器要访问网页、微信要发消息、邮箱要发邮件,这些需求都由应用层来处理。简单说,应用层就是“App和网络的桥梁”,每个应用都有对应的协议,就像不同的快递有不同的快递规则:HTTP/HTTPS:网页浏览专用,比如打开百度、淘宝,用的就是这个协议;HTTPS比HTTP多了加密,支付、登录的时候用,更安全。FTP:文件传输协议,比如程序员往服务器上传代码、下载大文件,常用FTP。SMTP/POP3/IMAP:电子邮件协议,SMTP负责发邮件,POP3/IMAP负责收邮件,咱们用QQ邮箱、网易邮箱,背后就是这俩协议在干活。DNS:域名解析协议,这个超重要!咱们记网址(比如www.baidu.com)比记IP地址(比如180.101.49.11)容易多了,DNS就是把网址翻译成IP地址的“翻译官”,没有它,咱们得背一堆数字才能上网。其他常用协议:SSH(远程登录服务器,程序员常用)、Telnet(早期远程登录,现在基本被SSH取代,不安全)。我平时遇到的“网页打不开”,很多时候就是应用层的问题——比如DNS解析失败(网址翻译错了)、HTTP协议报错(404页面不存在、500服务器出错)。第4层 传输层(核心层,负责“靠谱传输”)应用层把数据交下来后,传输层的任务就是“把数据从源设备的App,靠谱地传到目标设备的App”。它就像快递员,不仅要把包裹送过去,还要确保包裹没丢、没坏、没顺序错乱。传输层主要靠两个核心协议,各有各的用处,按需选择:TCP(传输控制协议):“靠谱但稍慢”的协议,主打一个“万无一失”。它会建立连接(三次握手)、确认数据接收(对方收到会回复ACK)、重传丢失的数据、按顺序组装数据,还会做流量控制(避免发送太快导致对方处理不过来)和拥塞控制(避免网络堵车)。适用场景:需要高可靠性的应用,比如网购付款、网页加载、文件传输、电子邮件——总不能付款的时候数据丢了,或者收邮件的时候内容少了一半吧?UDP(用户数据报协议):“快速但不靠谱”的协议,主打一个“高效快捷”。它不建立连接、不确认接收、不重传数据,发出去就不管了,虽然可能丢包,但延迟极低。适用场景:对速度要求高、能容忍少量丢包的应用,比如直播、打游戏、视频通话——直播的时候偶尔卡一下、丢个帧不影响整体观看,要是用TCP,为了重传数据导致延迟,直播就没法看了。传输层还有个关键概念:端口号。比如一台电脑上同时开着微信、浏览器、QQ,传输层靠端口号区分这些App——浏览器用80端口(HTTP)、443端口(HTTPS),微信用自己的专属端口,这样数据才不会传错地方。第3层 网络层(路由层,负责“找路线”)传输层把数据交下来后,网络层的任务就是“给数据找一条从源主机到目标主机的路线”。它不管数据在App之间怎么传,也不管在局域网内怎么传,只关心“跨网络的路由选择”——比如从家里的电脑(连WiFi)发数据到百度的服务器(在遥远的机房),中间要经过路由器、网关、运营商网络,网络层就是这个“指路明灯”。网络层的核心协议和功能:IP协议(互联网协议):给每台设备分配唯一的“身份证”——IP地址(比如IPv4的192.168.1.1,IPv6的2001:0db8:85a3:0000:0000:8a2e:0370:7334),并根据IP地址选择路由。没有IP协议,数据就不知道该往哪儿跑,互联网就成了“无头苍蝇”。ICMP协议(互联网控制消息协议):网络的“故障报警器”,负责传输控制信息和错误报告。比如咱们常用的ping命令,就是通过ICMP协议发送请求包,如果对方能收到并回复,说明网络连通;如果收不到,可能是路由出问题了,或者对方设备不可达。路由选择:路由器就是网络层的核心设备,它会维护一张“路由表”,记录不同IP地址段对应的转发路径。比如从家里的电脑发数据到百度服务器,路由器会判断“这条数据要先发到小区网关,再到运营商机房,最后到百度服务器”。我平时遇到的“ping不通某个网站”,大概率是网络层的问题——比如IP地址配置错误、路由表出错、ICMP协议被防火墙屏蔽了。第2层 数据链路层(局域网层,负责“同城送货”)网络层确定了跨网络的路线后,数据链路层的任务就是“在同一局域网内,把数据从一台设备传到另一台设备”。它就像同城快递员,负责最后一公里的配送,确保数据在局域网内准确送达,不丢包、不错包。数据链路层的核心功能和协议:数据帧封装:把网络层传下来的IP数据包,加上帧头(包含源MAC地址、目标MAC地址)和帧尾(校验码),变成“数据帧”——就像给包裹套上一个同城配送的快递袋,写上收发地址。MAC地址:设备的“硬件身份证”,由网卡厂商烧录在网卡上,全球唯一(比如00:1C:42:18:60:E0)。在同一局域网内,数据链路层靠MAC地址识别设备,就像同城快递靠门牌号找人。错误检测与纠正:通过帧尾的校验码,检测数据在传输过程中是否出错(比如受到电磁干扰导致比特翻转),如果出错,会要求重传。常见协议:Ethernet(以太网),咱们家里的WiFi、办公室的网线,用的都是以太网协议;还有PPP协议(点对点协议,比如拨号上网)、HDLC协议(广域网常用)。数据链路层的核心设备是交换机,它会学习局域网内所有设备的MAC地址,然后根据MAC地址精准转发数据帧——比如电脑A要给电脑B发数据,交换机知道电脑B的MAC地址对应的端口,直接把数据帧发到那个端口,不会像集线器那样广播给所有设备,效率更高。第1层 物理层(最底层,负责“物理传输”)数据链路层把数据帧交下来后,物理层的任务就是“把数据帧转换成电信号、光信号或电磁波,通过物理介质传出去”。它是整个协议栈的“基石”,不管数据内容是什么,只负责比特流(0和1)的物理传输,关心的是电压、电流、频率、传输介质这些硬件层面的东西。物理层的核心要素:传输介质:就是数据传输的“通道”,常见的有双绞线(咱们平时用的网线,比如Cat5e、Cat6)、同轴电缆(早期有线电视用的那种)、光纤(速度快、抗干扰,用于远距离传输)、电磁波(WiFi、4G/5G、蓝牙,无线传输)。物理设备:网卡(电脑/手机的网络接口,负责把数据转换成电信号)、集线器(最基础的网络设备,只是简单转发电信号,不分地址,现在基本淘汰)、交换机(数据链路层设备,但依赖物理层传输)、路由器(网络层设备,同样依赖物理层)、调制解调器(猫,把数字信号转换成模拟信号,用于宽带上网)。物理特性:比如双绞线的引脚定义、光纤的波长、WiFi的频段(2.4GHz和5GHz)、电信号的电压(比如高电平代表1,低电平代表0)。物理层出问题的话,网络直接连不上——比如网线断了、网卡坏了、WiFi信号太弱,这些都是物理层的问题,排查的时候先看硬件和传输介质。小结应用层:用户用的App(浏览器、微信)和网络的接口,管“要干什么”,靠HTTP、DNS这些协议干活;传输层:管“App之间靠谱传数据”,TCP靠谱(付款、网页),UDP快速(游戏、直播),靠端口号区分App;网络层:管“跨网络找路线”,靠IP地址定位设备,ICMP报错,路由器指路;数据链路层:管“局域网内送货”,靠MAC地址识别设备,交换机转发,确保同城数据不丢包;物理层:管“物理传输”,把数据变成电信号/光信号,靠网线、WiFi、网卡这些硬件干活。分层的好处为什么要分五层?核心就是“各司其职、方便维护”——比如家里上网连不上,先看网线插没插好(物理层),再看WiFi能不能连上(数据链路层),然后ping一下网关(网络层),最后看网页能不能打开(应用层),一层一层排查,不用瞎忙活。而且一层的技术升级,不影响其他层,比如物理层从网线换成光纤,应用层的HTTP协议不用变。常见问题排查思路网页打不开:先ping网址(比如ping www.baidu.com),如果ping不通,可能是DNS解析失败(应用层)或路由问题(网络层);如果ping通了但网页打不开,可能是HTTP协议问题(应用层)或443端口被屏蔽(传输层)。打游戏延迟高:大概率是UDP协议丢包(传输层),或者网络路由拥堵(网络层),可以换个WiFi、连网线试试(物理层)。局域网内设备连不上:比如电脑连不上打印机,可能是MAC地址绑定问题(数据链路层),或者打印机的IP地址配置错了(网络层)。
2016年04月08日
500 阅读
0 评论
38 点赞
2016-03-01
【每日随记】软件逆向破解工具篇
简介说到破解肯定少不了Ollydbg还有IDA,制作外挂就用到Cheat engine,Ollydbg是动态调试IDA是静态分析也可以动态调试,动态就是软件可以被运行起来断点调试进行修改,静态是直接分析反汇编代码进行修改,当然od也是可以看反汇编的两者各有各的优缺点,IDA可以直接伪代码构造大概的伪C代码很方便。调试工具IDA Proradare2Github传送门hopperOllydbgx64dbgGithub传送门Open ARK工具箱Github传送门针对.NETdnSpyGithub传送门ILSpyGithub传送门针对 Pythondecompile3Github传送门针对 AndroidjadxGithub传送门
2016年03月01日
833 阅读
0 评论
45 点赞
1
...
4
5
0:00