- 浏览: 1482809 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
注意个问题:
chrome不要用两个tab页,否则ping不通
应为只有使用的tab页面才是可操作的
把chrome分两个,两个jslinux都是可见状态才能ping通
大神的原版
https://bitbucket.org/ivucica/jslinux-network
不带网络的可读版本
https://github.com/levskaya/jslinux-deobfuscated
我修改过的在这
https://github.com/killinux/deobfuscated
编译内核的时候有个补丁在
https://github.com/killinux/jslinux_reversed
网络基础知识在这
https://haoningabc.iteye.com/blog/2272032
br0的mac地址会跟着新建tap地址改变的原因在这
https://haoningabc.iteye.com/blog/2436006
#@@@@@@@ 安装部署的具体操作 @@@@@@@@@@
具体安装
先安装nginx
centos7的防火墙
80端口
###########################
mac和linux设置路由的时候有点区别
如果想ping百度和google
cat /proc/sys/net/ipv4/ip_forward
br1的混杂模式: ip link set br1 promisc on
iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE
######################
websocket:
mod_pywebsocket.standalone
#######
问题
1.两个chrome互通 ,是tab页面的问题 ,两个都在可见的地方,用两个chrome就会通了
2.一个chrome和主机互通,让chrome的httpd可以访问 route
3.br和新建的tap设备mac地址相同 ,为什么? https://haoningabc.iteye.com/admin/blogs/2436006
4.把所有mac都检查一遍
5.tcpdump抓包 ,wireshark分析,结合tcpdump_uint8array
网络协议
http://support.huawei.com/enterprise/docinforeader!loadDocument1.action?contentId=DOC1000004409&partNo=10042
arp有详解
6.脑洞:远端任何时候的linux客户端可以远程操控设备
7.内核模块开发
8.自动安装的脚本和随时修改的编译环境,patch打一个
9.e1000: make ARCH=i386 drivers/net/e1000/
10. drivers/net/e1000/e1000_hw.h:522:#define MAXIMUM_ETHERNET_FRAME_SIZE 1518 /* With FCS */
11.整体的代码调用链
12.新版的tinyEMU ,
13 drivers/serial/8250.c ttyS1 8250 8251 异步通信控制器 ,8255 并行接口
14 PIC 串口,PIC.js, 0x2f8 可编程中断控制器
15.jsmodem也是用的串口ttyS1 ,socat 关联的,jslinux是用tapper.c
16.桌面,sdl?
17.serial2 收到消息后要加个settimeout延迟100ms,如果10则分两次发,如果不设置,则ping DUP!错误,打印会发现发送了n次,
18.用webrtc做im,可以省服务器资源。
19.jsmodem:串口变成16450了?
20.jsmodem的服务端如果不好使
iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE
21.硬盘
############ net0 #####
注意net0的源码
这部分其实没起作用啊
应为jslinux内部用的tapper.c建立了tap0,绑定了ttyS1,最终还是ttyS1与websocket通信的
#########
注意:
浏览器打开两个jslinux的时候,不要在一个浏览器的多个tab里面,tab切换的时候,非使用的浏览器tab内存会停止工作,两个jslinux互相ping是不通的,chrome浏览器分开两个单独的页面就好了
是否是因为 visibilitychange事件导致
#### 关注下
serials 8250
ttyS1设备 串口1
############
ip tuntap
#############
内核编译参考
https://haoningabc.iteye.com/blog/2338061
kernel linuxstart-20120111.tar.gz
patch_linux-2.6.20 里面的 jsclipboard.c
[root@meituan7 linux-2.6.20]# patch -p1 < ../tmp/linuxstart-20120111/patch_linux-2.6.20
patching file drivers/char/Kconfig
patching file drivers/char/Makefile
patching file drivers/char/jsclipboard.c
patching file drivers/serial/8250.c
patching file drivers/ide/ide-probe.c
patch -p1 < ../../jslinux_reversed/contrib/patches/2.6.20_common_fixes.patch
Makefile里面make -C $(KERNEL_PATH) -j4 这行注释掉,刚才已经编译过内核了
用make ARCH=i386 drivers/net/e1000/
具体:
修改Makefile
。。。
搜索/config %config
改成
%config
/\/ %\/
改成
%/
#grep -nR CONFIG_TUN *
#注意 arch/i386/defconfig:775:# CONFIG_TUN is not set 但是不用修改
.config
这里一定要注意!!!!!!
注释里不要有 CONFIG_TUN
不要在下面加,而是要修改
CONFIG_TUN=y
否则不好使
#make ARCH=i386 drivers/net/e1000/
#这句是ubuntu的img用的 ,deobfuscated不用
tmp/linuxstart-20120111/Makefile
修改
KERNEL_PATH=../../linux-2.6.20
kernel:
make -C $(KERNEL_PATH) ARCH=i386 -j16
make kernel
生成vmlinux.bin 给deobfuscated/jslinux.js 里面用就可以了
后续需要注意的还要看的
/dev/ttyS1和 tun是什么关系?
PCEmulator.js:1039: console.error("hao net0 net_send_packet ne2000: send packet len=" + send_bytes);//not used ? hao
arch/i386/defconfig:775:# CONFIG_TUN is not set
##########
对比自己编译的和网络可通的vmlinux.bin 的 命令行启动的时候的的加载的内容
好使的多了
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
可以搜到linux内核源码
drivers/net/tun.c:40:#define DRV_COPYRIGHT "(C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>"
#@@@@@@@@@@@@@@@ 内核修改具体操作 @@@@@@@@@@@@@@@
1.准备:
deobfuscated 为运行代码 (https://github.com/killinux/deobfuscated )
jslinux_reversed 有多线程自旋锁的补丁 为多线程补丁的目录 (https://github.com/killinux/jslinux_reversed)
deobfuscated-file (包含linux-2.6.20.tar.gz,linuxstart-20120111.tar.gz和patch_linuxstart-20120111.patch 官方原版( https://github.com/killinux/deobfuscated-file)
2. 具体操作
cd deobfuscated-file
tar xvf linuxstart-20120111.tar.gz
tar xvf linux-2.6.20.tar.gz
ls
linux-2.6.20 tmp
cd tmp/linuxstart-20120111/
patch -p2 < ../../patch_linuxstart-20120111.patch
cd ../../linux-2.6.20
cp ../tmp/linuxstart-20120111/config_linux-2.6.20 .config
patch -p1 < ../tmp/linuxstart-20120111/patch_linux-2.6.20
patch -p1 < ../../jslinux_reversed/contrib/patches/2.6.20_common_fixes.patch
patch -p1 < ../tmp/linuxstart-20120111/makefile_patch_linux-2.6.20.patch
cd ../tmp/linuxstart-20120111
make kernel
cp vmlinux26.bin ../../../deobfuscated
3.说明:
内核的加载参考 http://dl.iteye.com/topics/download/2f7a4c85-b587-3577-a13d-1050896ff987
新版的jslinux已经摒弃纯js的代码,使用 asm.js的emscripten加载tinyemu实现risv和x86
https://haoningabc.iteye.com/blog/2437013
chrome不要用两个tab页,否则ping不通
应为只有使用的tab页面才是可操作的
把chrome分两个,两个jslinux都是可见状态才能ping通
大神的原版
https://bitbucket.org/ivucica/jslinux-network
不带网络的可读版本
https://github.com/levskaya/jslinux-deobfuscated
我修改过的在这
https://github.com/killinux/deobfuscated
编译内核的时候有个补丁在
https://github.com/killinux/jslinux_reversed
网络基础知识在这
https://haoningabc.iteye.com/blog/2272032
br0的mac地址会跟着新建tap地址改变的原因在这
https://haoningabc.iteye.com/blog/2436006
#@@@@@@@ 安装部署的具体操作 @@@@@@@@@@
具体安装
先安装nginx
wget http://nginx.org/download/nginx-1.15.8.tar.gz yum install pcre pcre-devel -y yum install zlib zlib-devel -y yum install openssl openssl-devel -y ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
centos7的防火墙
80端口
firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --reload websocket端口 firewall-cmd --permanent --zone=public --add-port=3000/tcp firewall-cmd --reload 如果是https firewall-cmd --permanent --zone=public --add-port=443/tcp firewall-cmd --permanent --zone=public --add-port=443/udp firewall-cmd --reload firewall-cmd --zone=public --list-all firewall-cmd --list-all
###########################
mac和linux设置路由的时候有点区别
yum install bridge-utils yum install python-virtualenv linux route add -net 172.18.197.0 netmask 255.255.255.0 tap0 route add -net 172.18.197.0 netmask 255.255.255.0 eth0 mac route add -net 172.18.197.0 -netmask 255.255.255.0 192.168.1.66
如果想ping百度和google
cat /proc/sys/net/ipv4/ip_forward
br1的混杂模式: ip link set br1 promisc on
iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE
######################
websocket:
mod_pywebsocket.standalone
#######
问题
1.两个chrome互通 ,是tab页面的问题 ,两个都在可见的地方,用两个chrome就会通了
2.一个chrome和主机互通,让chrome的httpd可以访问 route
3.br和新建的tap设备mac地址相同 ,为什么? https://haoningabc.iteye.com/admin/blogs/2436006
4.把所有mac都检查一遍
5.tcpdump抓包 ,wireshark分析,结合tcpdump_uint8array
网络协议
http://support.huawei.com/enterprise/docinforeader!loadDocument1.action?contentId=DOC1000004409&partNo=10042
arp有详解
6.脑洞:远端任何时候的linux客户端可以远程操控设备
7.内核模块开发
8.自动安装的脚本和随时修改的编译环境,patch打一个
9.e1000: make ARCH=i386 drivers/net/e1000/
10. drivers/net/e1000/e1000_hw.h:522:#define MAXIMUM_ETHERNET_FRAME_SIZE 1518 /* With FCS */
11.整体的代码调用链
12.新版的tinyEMU ,
13 drivers/serial/8250.c ttyS1 8250 8251 异步通信控制器 ,8255 并行接口
14 PIC 串口,PIC.js, 0x2f8 可编程中断控制器
15.jsmodem也是用的串口ttyS1 ,socat 关联的,jslinux是用tapper.c
16.桌面,sdl?
17.serial2 收到消息后要加个settimeout延迟100ms,如果10则分两次发,如果不设置,则ping DUP!错误,打印会发现发送了n次,
18.用webrtc做im,可以省服务器资源。
19.jsmodem:串口变成16450了?
20.jsmodem的服务端如果不好使
iptables -t nat -A POSTROUTING -s "10.0.2.0/255.255.255.0" ! -d "10.0.2.0/255.255.255.0" -j MASQUERADE
21.硬盘
############ net0 #####
注意net0的源码
grep -nr net0 `find . -name \*.js` PCEmulator.js:1089: this.net0 = new network_driver(this, 0x300, this.pic.set_irq.bind(this.pic, 9), [0x62, 0xb9, 0xe8, 0x01, 0x02,
这部分其实没起作用啊
应为jslinux内部用的tapper.c建立了tap0,绑定了ttyS1,最终还是ttyS1与websocket通信的
#########
注意:
浏览器打开两个jslinux的时候,不要在一个浏览器的多个tab里面,tab切换的时候,非使用的浏览器tab内存会停止工作,两个jslinux互相ping是不通的,chrome浏览器分开两个单独的页面就好了
是否是因为 visibilitychange事件导致
#### 关注下
serials 8250
ttyS1设备 串口1
############
ip tuntap
#############
内核编译参考
https://haoningabc.iteye.com/blog/2338061
kernel linuxstart-20120111.tar.gz
patch_linux-2.6.20 里面的 jsclipboard.c
[root@meituan7 linux-2.6.20]# patch -p1 < ../tmp/linuxstart-20120111/patch_linux-2.6.20
patching file drivers/char/Kconfig
patching file drivers/char/Makefile
patching file drivers/char/jsclipboard.c
patching file drivers/serial/8250.c
patching file drivers/ide/ide-probe.c
patch -p1 < ../../jslinux_reversed/contrib/patches/2.6.20_common_fixes.patch
Makefile里面make -C $(KERNEL_PATH) -j4 这行注释掉,刚才已经编译过内核了
用make ARCH=i386 drivers/net/e1000/
具体:
修改Makefile
。。。
搜索/config %config
改成
%config
/\/ %\/
改成
%/
#grep -nR CONFIG_TUN *
#注意 arch/i386/defconfig:775:# CONFIG_TUN is not set 但是不用修改
.config
这里一定要注意!!!!!!
注释里不要有 CONFIG_TUN
不要在下面加,而是要修改
CONFIG_TUN=y
否则不好使
#make ARCH=i386 drivers/net/e1000/
#这句是ubuntu的img用的 ,deobfuscated不用
tmp/linuxstart-20120111/Makefile
修改
KERNEL_PATH=../../linux-2.6.20
kernel:
make -C $(KERNEL_PATH) ARCH=i386 -j16
make kernel
生成vmlinux.bin 给deobfuscated/jslinux.js 里面用就可以了
后续需要注意的还要看的
/dev/ttyS1和 tun是什么关系?
PCEmulator.js:1039: console.error("hao net0 net_send_packet ne2000: send packet len=" + send_bytes);//not used ? hao
arch/i386/defconfig:775:# CONFIG_TUN is not set
##########
对比自己编译的和网络可通的vmlinux.bin 的 命令行启动的时候的的加载的内容
好使的多了
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
可以搜到linux内核源码
drivers/net/tun.c:40:#define DRV_COPYRIGHT "(C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>"
#@@@@@@@@@@@@@@@ 内核修改具体操作 @@@@@@@@@@@@@@@
1.准备:
deobfuscated 为运行代码 (https://github.com/killinux/deobfuscated )
jslinux_reversed 有多线程自旋锁的补丁 为多线程补丁的目录 (https://github.com/killinux/jslinux_reversed)
deobfuscated-file (包含linux-2.6.20.tar.gz,linuxstart-20120111.tar.gz和patch_linuxstart-20120111.patch 官方原版( https://github.com/killinux/deobfuscated-file)
2. 具体操作
cd deobfuscated-file
tar xvf linuxstart-20120111.tar.gz
tar xvf linux-2.6.20.tar.gz
ls
linux-2.6.20 tmp
cd tmp/linuxstart-20120111/
patch -p2 < ../../patch_linuxstart-20120111.patch
cd ../../linux-2.6.20
cp ../tmp/linuxstart-20120111/config_linux-2.6.20 .config
patch -p1 < ../tmp/linuxstart-20120111/patch_linux-2.6.20
patch -p1 < ../../jslinux_reversed/contrib/patches/2.6.20_common_fixes.patch
patch -p1 < ../tmp/linuxstart-20120111/makefile_patch_linux-2.6.20.patch
cd ../tmp/linuxstart-20120111
make kernel
cp vmlinux26.bin ../../../deobfuscated
3.说明:
内核的加载参考 http://dl.iteye.com/topics/download/2f7a4c85-b587-3577-a13d-1050896ff987
新版的jslinux已经摒弃纯js的代码,使用 asm.js的emscripten加载tinyemu实现risv和x86
https://haoningabc.iteye.com/blog/2437013
- 内核代号101.zip (202.2 KB)
- 下载次数: 1
发表评论
-
sdl笔记
2019-01-31 17:19 741sdl教程教程 https://github.com/Twin ... -
tinyemu
2019-01-24 17:59 1441参考https://bellard.org/jslinux/t ... -
建立tap设备的c的代码
2019-01-08 19:09 480tapper.c #include <stdio.h& ... -
br0和tap0的互相影响
2019-01-02 19:17 820转载 http://www.cnblogs.com/wlei/ ... -
emscripten asm.js的helloworld
2018-03-01 20:15 1119mac下安装: brew install SDL2 SDL2_ ... -
nginx代理wss和https
2018-02-27 15:34 3939nginx启用ssl yum install openssl ... -
jslinux-deobfuscated-network
2017-02-13 22:37 733基础知识 查看网络包 tcpdump -i eth0 -e ... -
用buildroot为jslinux建立最小rootfs
2016-11-18 17:59 1279############################### ... -
jslinux带网络功能的内核
2016-11-15 15:35 823想重新编译jslinux-network 的内核,其实就是比f ... -
Tunnels with iproute2
2016-11-14 15:22 593copy from http://members.ferrar ... -
nginx rewrite替代apache rewrite
2016-10-18 20:30 844清理chrome的缓存 chrome://appcache-i ... -
vxlan多台主机的vm之间不同网段互通
2016-09-19 21:06 4403组播: 试验: 在三台机器上 192.168.139.251 ... -
vxlan多台主机的vm之间相同网段互通
2016-09-19 16:30 2243三台机器 建立namespace ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2832ip route add 192.168.8.0/24 via ... -
socket的方式使用qemu建立虚拟机
2016-06-24 17:54 1932qemu的-net参数 -net nic 必须有,基本配置mo ... -
tap的方式使用qemu建立虚拟机NAT网络
2016-06-23 18:03 9902基本概念: vm:虚拟机 ... -
qemu用nat的方式使用tap建立虚拟机
2016-06-23 16:15 11普通桥接参考 http://haoningabc.iteye. ... -
tap的方式使用qemu建立虚拟机桥接网络
2016-06-22 20:53 7883需求:建立一个虚拟机,使网络和内网一样,当一台普通接入内网的服 ... -
websocket和tap使用select关联
2016-06-14 22:01 753c语言的socket基础http://haoningabc.i ... -
socket基础和select(python)
2016-06-14 17:21 1807上接 c语言的socket基础ht ...
相关推荐
JavaScript编写的Linux模拟器,即JSLinux,是由著名的程序员Fabrice Bellard创作的一个创新项目。Fabrice Bellard是一位多产的开发者,以其在计算机领域的多项杰出贡献而闻名,包括FFmpeg、QEMU虚拟化软件以及...
node-jslinux 为 jslinux 提供兼容 Node.js 的扩展。 标签:nodejslinux
"jslinux"标签进一步确认了这个压缩包与JSLinux项目有关,意味着其中包含的代码可能是实现JavaScript版本的Linux内核模拟器,或者是相关的用户界面组件、脚本和配置文件。JavaScript Linux的实现依赖于JavaScript的...
这一概念由法国程序员 Fabrice Bellard 通过他的项目 JSLinux 实现,该项目链接为 <http://bellard.org/jslinux/>。 JSLinux 是一个基于 JavaScript 的虚拟机,它使用 Emscripten 编译器将 Linux 内核(通常为 vm...
JS函数总结,里面包含了函数分类,用于下载积分积攒使用
这篇文档适合刚接触JS和对JS知识点不熟悉的同志。新手的话可以边学边参考文档;有一定基础的可以查漏补缺,便于复习和查阅。
JS总结第二章自己写的总结 请大家下载看看 谢谢
js关键字总结.docx
js关键字总结.pdf
个人总结对Ext js 的学习总结,希望对各位朋友有所帮助
Linux安装Node.js Linux系统中安装Node.js是指将Node.js runtime环境安装到Linux操作系统中,以便开发和运行基于Node.js的应用程序。Node.js是一个基于JavaScript的runtime环境,提供了一个事件驱动、非阻塞I/O模型...
借鉴资料,共享思路;没啥特别描述,copy的内容;js-01-基础总结深入,MD文档阅读-对象的理解和使用
js学习总结,希望能帮助大家,多多指点了
JS总结第三章自己写的 请大家下载 谢谢
`JS 总结.html
js最全错误总结.xls,
js课堂总结(全),大家可以看一下,特别是在学习js的同学,建议下载下来看看!
js英文表示总结.mm
标题中的“基于nw.js的网易云音乐Linux版客户端”指的是使用nw.js框架开发的、专为Linux操作系统设计的网易云音乐应用。nw.js(前身是node-webkit)是一款开源的工具,它允许开发者使用HTML5、CSS3、JavaScript等Web...