月记201912
F.I.R.E与厄瓜多尔
小孩教育
Kali安装Tor
硬件中断输入
USB远程访问
Detours进行Windows dll劫持
F.I.R.E与厄瓜多尔
定义
首先,FIRE的定义是“财务独立,提前退休”。
它的手段核心就是前期做巨量积累(通常在10年内),然后在30+左右年龄,通过积累资金的被动收益来维持自己的支出。
之前为这个事做了蛮多筹划,直到最近我开始考虑小孩教育,才发现自己有一个严重的考虑不周:我没有考虑小孩小学初中高中的教育支出。
而看到我妈带孩子,想起了年少时在学校受到的填鸭教育。我实在无法忍受孩子像我一样,再从公立学校一步一步走出来。这条路实在太艰辛,我走过就好,实在不忍他再重复了。
FIRE的核心概念之一是减少欲望,降低支出。
但小孩接受私教费用挺高,而且我即将又有俩娃,开销更大,原本筹划的加拿大,哥斯达黎加行不通。不得不做新的安排。
比较
其次,我要知道相关名词的特点和区别。
- 远程工作: 依然是入职打工获得收入,但可以在家进行远程工作,所有有一点的时间自由度。
- 工作时间依然受限,但有一定的自由度。
- 不工作,无收入。
- 依然被榨取大量中间收入。
- 自由工作/数字游牧: 网上接外包单,定期完成任务获得收入,可选择单位时间不接单,时间和地点更加自由。
- 工作时间不受绝对控制,时间上基本自由。
- 不工作,无收入。
- 被榨取少量中间收入。
- 被动收入: 一次投入,多次回报获得收入。
- 工作时间完全不受控制,时间上基本自由。
- 不工作,少量收入。
- 被榨取少量中间收入。
- FIRE:提前退休,不需要工作,纯粹依靠前期投资获得收入。
- 工作时间完全为0。
- 不需要工作。
- 没有中间收入被榨取。
基本上,上述概念是逐层递进的。它是我定义的 远程工作->数字游牧->被动收入 之路的最高级,即财务自由。
核心理论
退休之前,有年支出的25倍存款,然后保持自己资产年化4%以上即可。
但注意,上面的4%必须扣除通膨率。
数值例子
例如,某人一家四口家庭当前每年每年支出16W
水 50 + 电 150 + 燃气 100 = 300
电话费俩人 100 + 网费 200 = 300
伙食费 3000
交通费 350
幼儿园 3000
偶尔下馆子看电影出去转转 1000
年度旅游一次 2500
衣服 1000
清洁护肤 500
孩子过节生日娱乐 1000
看病医疗 200
家具家电更新 200
总计 = 13300 * 12 = 16W左右
那么按照年化4%,即25倍开销即可FIRE,则需400W投资即可。
投资方式推荐
一般投资方式,例如美股标普500指数在过去40年平均年化10%,20年美债ETF过去14年年化则是6%。假设50%:50%去投资美股和美债,年化率大约是8%。
而美国从1913年到现在100年内,年平均通膨是3%。1998-2018这30年的美国平均通膨是2%。
所以,只要有6%的年化就足够了。
所以,购买美股指数和美债是行的通的。
但,如果境外购买美股,则要考虑两个问题,一个是汇率问题,一个是基金手续费。这俩的抽成大约是达到1%,要自行想办法处理。
厄瓜多尔
优势
- 私立医疗水平不错,永居权限每月缴纳85刀即可享受优质公私医疗。
- 国际学校超过300家(泰国仅130家),全IB学校16所(菲律宾仅1所),费用低廉,私立学校月支出200-600刀,IB学校月支出1000刀。
- 生活水平要求低,农业产品国,基本消费更低(一家两口月支出1000刀以内,一家四口读公立支出1500刀以内,一家四口读普通私立学校2300刀)
- 绿化面积很高,污染少。气温恒定,基多(9-23),昆卡(11-23),海边(21-33)全年温差不超过1度。有山有海,有温有热,满足多样性。
- 使用美元,不用担心政府搞通膨。银行存款利率极高,年化6%-8.5%左右。
- 无任何肤色民族歧视。
- 护照非常适合做跳板,中南美共同体意味着去智利乌拉圭工作居住都随意,护照去西班牙美国加拿大拿绿卡比中国护照给力,护照去中国免签。
劣势
- 回国坐飞机24小时。
- 贪污和中国差不多(南美只有智利靠谱),法制精神一般(和中国得分完全一致)。
- 交通事故死亡率居然和中国差不多……
难以评判
- 治安(暴力犯罪)比较复杂,各大网站意见不统一。但综合各大网站信息整理起来,比菲律宾稍微强一些,半斤八两吧。
- 免签国家确实不错,美加澳新以及欧洲申根没有一个免签的……不过,听说申根快给它免签了,我觉得靠谱,毕竟它邻国秘鲁也没啥大差别,申根都免了,我琢磨也快了。
总结
反正目前看起来,目的是养老和小孩教育的话,除了治安之外,整体相当靠谱。
厄瓜多尔的FIRE计划
支出
- 俩小孩读普通国际学校 = 800
- 电费 = 40
- 话费 = 50
- ETAPA网费 = 30
- 交通 = 50
- 家庭用品 = 50
- 医保 = 160
- 医疗 = 200
- 食物 = 400
- 外出用餐 = 20 * 10顿 = 200
- 其他娱乐应急若干 300
一个月大约2300刀。
收入
现在香港保险年收22500刀 = 1875刀/月
补充说明
美元过去30年通膨为2%,过去100年通膨是3%。我视为2.7%。
如果我再存20W刀到当地银行,按照6%-8.5%的利率(我视为6%),那么得到的利息足以抵消保险和存款的通膨。
如果多存10W刀到当地银行,则可以每月额外产生425刀利息,达到完整收支平衡。
如有更多利率或被动收入,可留住以备小孩高中IB费用,大学费用和父母医疗自己医疗,旅游费用。
结论
- 需要再存当地30W刀到银行
- 需要15W刀购买当地House一个(很多很不错的,500平米的3室新房靠近海边的也就这价格)
- 为小孩教育需要基多市中心一个2室一厅的Apartment一个,约10W刀(小孩读大学可出租)
计划
当前收入不做调整,则需4年。若跳槽则需接近2年。所以,40岁之前可达成。
小孩教育
亚洲教育情况比较
整体来说,在前面的会适合当前情况一点。
- 国家档次和生活水平(低->高,低的也未必最好)
菲律宾>泰国>马来西亚>韩国>新加坡
- 当地高质量学校数量和概率(优->劣)
新加坡>韩国>泰国>马来西亚>菲律宾
- 英语环境(优->劣)
新加坡>菲律宾>马来西亚>泰国>韩国
- 费用高低(低->高)
泰国>马来西亚>菲律宾>新加坡>韩国
- 身份居留容易度(易->难)
菲律宾>韩国>马来西亚>新加坡>泰国
- 大学优劣(优->劣,基本可以无视,没打算小孩在亚洲读大学)
新加坡>韩国>马来西亚>菲律宾>泰国
基本概念普及
IB: 国际认可文凭。
- 包含小学(PYP,3-12岁)中学(MYP 11-16)预科(DP)。一般非特殊说明的学校可能只有IBDP,只有声称全IB的才包含PYP,MYP。
- 国际认可,属于国际高中学历。重点是培养学生综合能力。文理兼修,英语要求最高。
- 45分制。40分以上很有竞争力。
- 缺点是:学生课业负担很大,而且有可能不能毕业。。。
- 一般推荐从小学就开始读。
AP:美国大学预修。
- 注意!不是国际高中学历,也仅有美国承认。
- 其考试成绩可换取美国大学的学分。
- 5分制。4分以上有竞争力。
- 缺点是:是锦上添花的课程,而且仅有效于美国,英国,澳洲,加拿大等部分国家。
A-Level:英国普通高中。
- 任何说英语的国家都承认。
- 无社会实践,比较容易,适合中国学生,容易拿高分。
- 9分制(A* - G),B级(6分)以上有竞争力。
- 缺点是:有些应试教育。
IGCSE: 国际中学教育。
- 因为IBDP, AP, A-Level都是两年,相当中国的高中。在那之前的初中,就可以读IGCSE,可无缝衔接IB,A-level。
- 选课灵活度:AP>A-Level>IB
AP可以直选1门课,可以选10门; A-Level则限制在3-4门; IB则是固定套餐,可选专业受限,文理不让偏科,最低6门学科。
- 整体难度:IB>AP>A-Level
IB不仅仅学文理科,还要学艺术,还要去完成论文和社会活动。AP和A-Level则不限制社会活动,会比较轻松。
- 单科难度:AP>A-Level>IB
AP部门课程是大学级别难度;但IB的知识很有体系性,培养的是全能型选手。
- 教学方向:IB>AP=A-Level
IB的最大特点就是,教育是概念性学习,而另外两者是知识性学习。
例如:
- 中国是题海战术帮助学生记忆答案,例如,如何修好一个丰田汽车;
- AP,A-LEVEL是探究性学习帮助学生寻找答案,例如,我不擅长修车,但如何学会去修车;
- 而IB则是反思训练帮助学生去提出答案,例如,我为什么修车,如何制造一个能自我维护的汽车。
Kali安装Tor
- apt-get install tor
- 访问https://www.torproject.org 下载对应平台的Browser
- cd Downloads
- tar -xJf tor-browser-linux64-9.0.2_en-US.tar.xz
- 运行 ./start-tor-browser.desktop 会提示“The Tor Browser Bundle should not be run as root. Exiting.”
- cd Browser
- vi start-tor-browser
- 注释掉
# complain “The Tor Browser Bundle should not be run as root. Exiting.”
# exit 1
- 再启动外面的 ./start-tor-browser.desktop
- 打开tor浏览器后,到暗网google看一下 : http://xmh57jrzrnw6insl.onion
硬件中断输入
USB远程访问
架构
为了便于管理和操作,U盘需要插到远程的服务器上,通过计算机网络读取U盘。客户端是windows,服务器端考虑到稳定性将采用linux。
官网
备选方案UsbOverNetwork
基于Centos7的USB服务器搭建
安装Centos7(USBIP内核kernel3.1以上)
设置静态网络(如果是VM,采用NAT模式)
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
根据实际情况设置内容如下:
BOOTPROTO=static
NAME=ens33
UUID=447cda9d-5780-4d43-8d67-8693f2ad40ce
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.75.146
NETMASK=255.255.255.0
GATEWAY=192.168.75.2
DNS1=10.71.40.1
DNS2=10.71.40.2
service network restart
测试是否可以连通代理服务器 ping 10.66.72.173 必须成功
- 便于测试将防火墙关闭(也可以设置白名单)
service firewalld stop (关闭开机自动启动chkconfig firewalld off)
- 设置YUM安装源(通过10.66.72.173的YUM代理模式从互联网拉YUM源)
设置通用YUM源,将附件nexus.repo、epel.repo、elrepo.repo 放入 /etc/yum.repos.d
yum update 更新yum
yum install kmod-usbip (安装usbip相关辅助,如果elrepo的版本是kmod-usbip-1.0.1-4对于linux内核过高,可以手动rpm安装附件kmod-usbip-1.0.1-3 rpm -Uvh kmod-usbip*.rpm)
yum install usbip-utils (将从elrepo安装usbip服务器端,版本是2.0)
检查是否安装成功
[root@localhost]#which usbip
/usr/sbin/usbip
- 挂载模块
sudo modprobe usbip_core
sudo modprobe usbip_host(服务器)
sudo modprobe vhci-hcd(客户端)
守护进程启动 sudo usbipd -D
将U盘插入USB-Hub(或者电脑插槽),如果VM,需要设置下USB支持,并且虚拟插入U盘
sudo usbip list -l 查看本地usb设备
[root@localhost]# usbip list -l
- busid 3-1 (0e0f:0003)
VMWare, Inc.: Virtual Mouse(0e0f:0003)
- busid 3-2 (163c:548c) // 这个就是虚拟USB设备
unknown vendor: unknown product(163c:548c)
- 绑定设备sudo usbip bind -b 3-2
[root@localhost]# sudo usbip bind -b 3-2
usbup: info: bind device on busid 3-2: complete
- 实验绑定(本机当成客户端,试图远程绑定,然后解绑)
sudo usbip attach -r localhost -b 3-2
sudo usbip port (获取port,用于解绑)
sudo usbip detach -p 00 (解绑)
windows客户端部分
安装win7
关闭驱动签名 管理员身份 运行 cmd
bcdedit /set testsigning on
重启Win7(重启后桌面上显示测试字样)
将附件 usbip-win-client-2.0.rar拷贝进入系统,并且解压
打开设备管理器,添加一个过期硬件
选择手动安装驱动,并且选择usbip-win-client-2.0解压目录
安装成功后,可见设备列表中有 USB/IP Virtual HOst Controller Interface设备
管理员身份,运行cmd,cd到目录usbip-win-client-2.0
运行查看远程服务器共享的,USB:usbip -l 192.168.75.146
绑定远程
usbip -a 192.168.75.146 b 3- 2
系统会自动按照相关文件,并且在可移动设备能够看见远程的设备
- 此时即可远程访问USB
Detours 劫持
下载
编译
windows下使用 VS开发人员命令提示 工具
cd D:\xxx\Detours\src
d:
nmake
编译完得到,detours.h ,detours.lib ,detver.h
编码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include "detours.h"
#pragma comment(lib , "detours.lib")
// 存储需要进行hook的函数指针地址
// 当前测试函数为system函数
static int(*poldsystem)(const char * _Command) = system;
//自己实现一个system函数
int mysystem(const char * _Command) {
const char * ps = NULL;
ps = strstr(_Command, "calc");
if (ps != NULL)
printf("%s 已经被劫持啦!\n", _Command);
else
printf("%s 不做检查,仅劫持calc!\n", _Command);
return 0;
};
//开始拦截
void Hook() {
DetourRestoreAfterWith(); //恢复初始状态
DetourTransactionBegin(); //拦截开始
DetourUpdateThread(GetCurrentThread()); //刷新当前线程
/** 此处下面填写自己想要拦截的函数 **/
DetourAttach((void **)&poldsystem, mysystem); //实现函数拦截
DetourTransactionCommit(); //提交事务,拦截生效
}
//撤销拦截
void UnHook() {
DetourTransactionBegin(); //拦截开始
DetourUpdateThread(GetCurrentThread()); //刷新当前线程
/** 此处下面填写自己想要取消拦截的函数 **/
DetourDetach((void **)&poldsystem, mysystem); // 取消拦截
DetourTransactionCommit(); //提交事务,取消拦截生效
}
int main(void) {
printf("调用了system('calc')函数 \n");
system("calc");
Hook();
printf("已经开启HOOK,按下任意键继续 \n");
getchar();
printf("调用了system('calc')函数,按下任意键继续 \n");
system("calc");
getchar();
printf("调用了system('ipconfig')函数,按下任意键继续 \n");
system("ipconfig");
getchar();
UnHook();
printf("已经关闭HOOK,按下任意键退出 \n");
getchar();
}
上面可以编译运行查看结果。如果想注入其他进程,只需修改
_declspec(dllexport) void main(){
...
}
生成 xx.dll 即可。
注入
使用 Xenos(https://github.com/DarthTon/Xenos)或者Blackbone(https://github.com/DarthTon/Blackbone) 进行dll绑定进程的注入
完成
之后,每次目标进程调用system函数时就会进入我们的hook
TODO
整合 Xenos,自动hook一些关键系统函数和socket函数,嘿嘿嘿嘿嘿