2015年5月22日 星期五

Binary Patch 雜談

Q. 為何會使用 Binary Patch?
A. 當無法取得原始碼時僅能用逆向工程對其行為修改.

流程如下 :
1. 取得現有的 儲存裝置 和 CPU Register 內容.
可透過 crash 處理方法引出 CPU 部份,
儲存裝置部份則使用硬體層面的直接存取, 如 IRQ , DMA .
或是直接物理性接觸.

2. 迴避保護機制
3. 數值修改跟行為修改

商業解決方案 :
特殊介面卡
假元件

2015年5月6日 星期三

IP Local Port Range (Ephemeral port)

Windows 部份
  • Windows 2008 之前 1025 ~ 5000
  • Windows 2008 之後(含) 49152 ~ 65535 (IANA)
Verify :
  • netsh int ipv4 show dynamicport tcp
  • netsh int ipv4 show dynamicport udp
  • netsh int ipv6 show dynamicport tcp
  • netsh int ipv6 show dynamicport udp
Configuration :
  • netsh int ipv4 set dynamicport tcp start=10000 num=1000
  • netsh int ipv4 set dynamicport udp start=10000 num=1000
  • netsh int ipv6 set dynamicport tcp start=10000 num=1000
  • netsh int ipv6 set dynamicport udp start=10000 num=1000
特殊狀況 :
  • Exchange Server 2007 會自動修改為 1025 ~ 60000
Linux 部份
  • 32768 ~ 61000
Verify :
  • sysctl net/ipv4/ip_local_port_range
Configuration :
  • sysctl -w net.ipv4.ip_local_port_range="1024 64000"
  • edit /etc/sysctl.conf with "net.ipv4.ip_local_port_range = 1024 64000"
OpenBSD
  • 1024 ~ 49151
  • 49152 ~ 65535
Verify :
  • sysctl net.inet.ip.portfirst net.inet.ip.portlast net.inet.ip.porthifirst net.inet.ip.porthilast
Configuration :
  • sysctl net.inet.ip.portfirst=32768 net.inet.ip.portlast=49151 net.inet.ip.porthifirst=49152 net.inet.ip.porthilast=65535
  • edit /etc/sysctl.conf with "net.inet.ip.portfirst=32768 net.inet.ip.portlast=49151 net.inet.ip.porthifirst=49152 net.inet.ip.porthilast=65535"
Solaris
  • 32768 ~ 65535
Verify :
  • /usr/sbin/ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port
Configuration :
  • ndd -set /dev/tcp tcp_smallest_anon_port=9000 
  • ndd -set /dev/tcp tcp_largest_anon_port=65500 
  • ndd -set /dev/udp udp_smallest_anon_port=9000 
  • ndd -set /dev/udp udp_largest_anon_port=65500   
MAC OS X
  • 49152 ~ 65535
Verify :
  • sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last
Configuration :
  • sysctl -w net.inet.ip.portrange.first=32768
  • sysctl -w net.inet.ip.portrange.last=65535

Android , BlackBerry , FreeBSD ... , Selection Strategy 沒有談到.

參考 :
http://en.wikipedia.org/wiki/Ephemeral_port
http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html
https://gist.github.com/mbbx6spp/3154170

2013年3月4日 星期一

思考過度設計


1. 過度複雜架構
2. 資源過度濫用
3. 階段性功能過多
4. 系統使用者過多
5. 過度思考

2013年2月21日 星期四

經驗傳承




不可使慈愛、誠實離開你,要繫在你頸項上,刻在你心版上。口吐真言,永遠堅立;舌說謊話,只存片時。

2013年2月20日 星期三

2013年2月19日 星期二

隱藏問題與隱藏成本


國王有很多騎士是正常,
但是女王有很多騎士就...也很正常

是吧~

所以隱藏問題就是

除了國王女王之外還有誰
...是正常

隱藏成本就是正常成本之外

所以是誰定義正常成本?

2013年2月18日 星期一

設備的可用性

可用性基於以下幾點 :
1. 產品成熟度
1.1 硬體
1.1.1 電磁干擾忍受度
1.1.2 環境溫濕度氣壓
1.1.3 線路品質
1.1.4 異常處理方式
1.1.5 備援
1.2 軟體
1.2.1 有效訊息
1.2.2 軟體複雜度
1.2.3 開源方案
1.2.4 運行驗證
1.2.5 使用人員
2. 人員
2.1 異常排除技能
2.2 行政管理權限與溝通
2.3 系統複雜度
2.4 精神心理狀態
2.5 積習與不合適的規章
3. 業務考量
3.1 維護成本
3.2 損耗與修復成本
3.3 競爭成本
3.4 人事成本
3.5 意外災害

剩餘的下次再補充