hw2 Task2 改龙哥的read速度极快

不能再快了的read

credit : http://zonelikewonderland.tk/#/user/blog/details/481e27461fe6602e138b154ca8379587

const int buffsize=1e5;
char buf[buffsize],*pp=buf-1;
int readsize=0,freadsize=0;
inline void readinit(){
    fread(buf+(((readsize+buffsize-1)%buffsize>=buffsize/2-1)?0:buffsize/2),1,buffsize/2,stdin);
    freadsize+=buffsize/2;
}
inline int read(){
    if(readsize+buffsize/2>freadsize)readinit();
    while((++readsize,*++pp)<'-')if(pp==buf+buffsize-1)pp=buf-1;
    register int x=*pp&15;
    if(pp==buf+buffsize-1)pp=buf-1;
    while((++readsize,*++pp)>'-'){
        x=x*10+(*pp&15);
        if(pp==buf+buffsize-1)pp=buf-1;
    }
    if(pp==buf+buffsize-1)pp=buf-1;
    return x;
}

比我那个快。

用cuda破解ZIP存档密码


jabrown在2017年10月30日星期一提交-01:51
这将是有关如何破解受密码保护的ZIP档案的快速演练。

您将需要Hashcat和John Ripper大号。

如果使用的Linux系统没有zip2john软件包,则John Jumbo将需要编译。

将Hashcat和Ripper拆封并编译后,我们就可以获取ZIP文件的哈希值。

要获取哈希值,请运行。 / path / to / john / jumbo / run / zip2john {zip文件}

这将创建一个以冒号(:)分隔的字符串。我们仅在使用Hashcat破解哈希值时使用哈希值。

创建仅使用哈希值运行的哈希列表。 / path / to / john / jumbo / run / zip2john {zip文件} | cut -d':'-f 2> {哈希列表文件}

一旦有了哈希值,便可以使用Hashcat对其进行破解。

Hashcat命令对Winzip哈希使用单词列表攻击。 hashcat -a 0 -m 13600 {哈希列表} {wordlist}

由于Linux内核,GPU驱动程序和哈希破解系统的硬件的独特问题,我们使用的命令有所不同。

hashcat


 

只需几秒钟即可破解“ password”的简单密码。

拉链裂纹
 

使用正确的工具和单词列表,轻松破解ZIP密码非常容易。

[Compiler] 方舟编译器MapleIR基本套路

其中有两点值得注意:

  • 和LLVM一样,都是弄进一个IR统一调配进行lexical和semantic 的优化。
  • 方舟原生可执行。

Source Code已给,bug一堆。

从这张图当中,我们发现华为创新性地加入了M2M作为mid-end。

1.“M2M”(所有组件都是开源的)

语言特定降低,VTable生成,异常处理和类级分析。

2. 中端(只有一些的组件是开源的)

SS SA构造,参考计数(RC)插入,别名分析,“mplt处理” , RC优化,部分冗余消除(PRE),内联,副作用分析,去虚拟化,空指针消除,死代码消除(DCE), 边界检查消除,逃逸分析,复制传播,“跨语言优化”。等。

3. 后端(无组件是开源的)

堆栈分配,控制流优化,“EBO”优化,窥视孔,寄存器分配(RA)。等。

好的,我们知道后端,我们知道大多数中端优化,但......究竟什么是“M2M”阶段?

对于大多数中端优化,我认为是阶段化,而另一个IR(他们只是称之为Me)。现在让我们深入了解它们。

编译器 IR 设计

正如我们提到的,有两层IR:MAPLE和Me。他们在MAPLE上有相当不错的文档和规范,但基本上没有我的文档。

MAPLE是一个高级IR,表示与原始源代码关闭的概念。有三个重要的构建块:

  • Leaf 节点可以表示“存储”(例如,存储器块)的常数或地址/标识。
  • Expression 节点根据其操作数评估新值。他们不会产生任何副作用
  • Statement 节点通常用于表示控制流,例如循环和分支,或对存储单元的修改(例如,将值分配给存储)。

Maple IR 首先把不同语言lower成一个中间语言,再进行语言有关的优化。 它还将来自不同语言的共同特征组合成单个表示,这样编译器也可以执行与语言无关的优化。

除此之外,OpenArk基本上在同一组优化和分析中使用Me IR,您可以在其他编译器框架中找到:Alias Analysis,Dominator Tree,Dead Code Eliminations ...

Summary

OpenArk是一个编译器框架,它尝试将不同的语言编译为公共中间层并生成本机二进制文件。 它采用多层IR设计,可以在不同的抽象级别进行优化和分析。更多源代码和(英文)文档即将发布。

https://github.com/oracle/graal/tree/master/truffle https://doc.ecoscentric.com/gnutools/doc/gccint/GENERIC.html#GENERIC

内网穿透的另一种打开方式

背景:在学校里有个路由器,路由器下的二级路由资源无法被学校内网访问。

目标:路由器192.168.8.1\24网段ping通学校内网10.20.81.83在寝室的主机。

细节:1.有时两者ping不通。原因是学校交换机allocate的网段不一致。2.学校allocate的ip地址是动态的。

解决方法一:内网穿透到victoryang00.xyz,速度<1m/s

解决方法二:dns污染学校服务器。或者两台机子都用自己搭的dns服务器。没那个技术。

解决方法三:192.168.8.1开npc服务器,接收端开nps服务器。速度>30m/s

总结,在任何机子上都可以开nps内网穿透。

最后 推荐个全局dns都能代理,简直了。vpn可以下线系列 proxifier。不过这软件udp没做,smb、rdp就不要想了。不过tcp的速度贼快。关键不用再挂一个路由了。

在经历了那么多,觉得还是路由器最靠谱,arm软路由不稳定,到头来还是得x86上。可是,如果上了x86,那又和unraid没有竞争力了。J1900成为一代神U是有道理的。接下来就等amd发力了。

最后的最后 我知道为什么宋老师说真机快了,虽然排除极端比较,就相差个200%性能的exsi跑lede和lede就有很大区别。科科。

[和阿三学Lex&Yacc]Scientific Calculator using LEX and YACC:Part 2

Source: https://www.youtube.com/watch?v=pMNsedoGoa4

主要是实践部分。

有几个注意点:

1.如果需要加入在输入的时候上下左右cursor 需要lex include y.tab.h,这个文件是由yacc生成的。

2. 在yacc中 seporater 用 %%。在%%(C declaration)中 yacc main 函数语法类c。着重说一下yacc的语法。

FIRST PART

%%

production action......

%%

THIRD PART

above is the Input, First part contains the declaration, the third part is the implementation in c.

P.S.

[和阿三学Lex&Yacc]Scientific Calculator using LEX and YACC:Part 1

看了眼youtube 上可以用的资源,全是阿三口音,那就看着吧。反正我觉得不错。

以上和编译原理上讲的kleebe 和其他正则表达式的写法一致。只是在C和pascal当中要注意\转义符。在自行加definition的时候一定要注意。

有一个和编译原理上说的不一样。$有shell的味道。

lex就是一个lexical analysis 的东西,现在流行的语言是flex。(作为一个语言的必须)

举个栗子

这是一个标准的lex文件,和之前的男阿三说过的一样,lex包含auxiliary definitions 和 translation rules。也就是一一对应关系。

生成lex 文件,我们轻易的发现头文件部分和变量定义被省略,之后放在预处理里面操作。token相关被置换。

比如exp的部分在写表达式时被置换成$$相当于this了。$3指代输入的词素。

Yacc处理的main function 主要用到了 yyparse 函数

linking的主要数据流

也就是

lex cal.l
yacc -d cal.y
cc lex.yy.c y.tab.c -ll -ly lm
./a.out

iSH 在iOS上跑命令行 类termux

虽已不尽完美。但基本的cpuinfo得支持一下吧。tensorflow应该能跑,这玩意儿是alpine的i686架构的。

本质还是个chroot的container吧,只是调不到ios底层的东西,所以这些信息缺失,已实现的东西都是不平台依赖的包。

不过这玩意儿 import coreML能用?那岂不是可以破解ios游戏?

[FPGA]论文研读1 基于 FPGA 和 ASIC 实现的不同路由器结构的 MPSoC 比较

fpga 和 asic 主要的区别:

  1. CAD流程不同,fpga 由于逻辑块比较多,RAM相对寄存器缓存和本地储存器较大,所以采用RAM储存和寄存,asic则采用SDRAM。
asic的储存器结构

2.性能测试,面积和延时。

FGPA 与 ASIC 实现的面积比约为 29~33 倍,延时比约为 4.5~7.5 倍 。

参考文献:http://www.iaeej.com/xxydzgc/ch/reader/create_pdf.aspx?file_no=20150628&year_id=2015&quarter_id=6&falg=1