自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 X86-64寄存器

x86 register notes

2022-12-15 00:39:52 810 1

原创 push ebp到底是什么意思

x86 汇编语言学习笔记

2022-11-08 09:01:24 2990 4

原创 PyTorch - 0. regression 线性回归

Regression Basics - further with PyTorch code implementation

2021-12-03 23:53:16 161

原创 直接寻址计算

以MIPS为例:首先,1 word = 4 Bytes = 32 bits。 这32bits, 每一个bit都有0或1两种情况,那么32bits能形成的总数就是种情况。这的作用是寻址,因为我们通过bus到main memory里面去找到对应的地址取东西。所以就只能有个地址,因为再多也没用了,bus也表示不了大于的值了。那这个地址里面放的是什么呢,就是一个byte。为什么一个地址里就是一个byte那么大呢?因为MIPS就byte addressable,就是按照byte寻址的。...

2021-11-12 12:33:30 1352

原创 11 种常见的 Bug types

1. functional errors2. performance defects3. usability defects4. compatibility defects5. security defects6. syntax errors7. logic errors8. unit-level bugs9. system-level integration bugs10. code duplication11. data type mismatch.

2021-11-04 00:09:28 912

原创 Basic Blocks

首先要知道Basic Block是什么。是一段线性程序,这段代码里面没有分支,只有一个入口和一个出口。Control-flow graph是一个流程图,它表示的是程序执行时候的顺序。CFG里面每个node都是一个basic block。用binary search举个例子。#include <stdio.h>int iterativeBinarySearch(int array[], int start_index, int end_index, int element){

2021-10-09 23:44:08 1900

原创 carry-lookahead adder 超前进位加法器

关于Carry-lookahead Adder(CLA) 超前进位加法器:Carry-lookahead就是超前进位。首先,不超前是什么,不超前就是按顺序,从低位到高位的加。高位要等低位先做,低位做完把结果给高位,高位再接着做。这就是由全加器(Full adder)组成的ripple-carry adder。那么Sequential的缺点是什么,就是要等,等就有delay。比如下图的全加器,从右到左是一个低位到高位,A1和B1虽然已经准备好了,但是要计算的话还需要等A0和B0把C1算出来。...

2021-10-03 10:56:25 3920

原创 ModelSim free

ModelSim-Intel FPGA Edition (includes Starter Edition) Lite 20.1.1安装笔记下载地址https://fpgasoftware.intel.com/20.1.1/?edition=lite&platform=linux具体如图。Linux 20.04环境下安装首先下载这个individual files 下面的ModelSim-Intel FPGA Edition (includes Starter Edition)。然后安.

2021-09-29 05:24:56 355

原创 virtualenv和python2.6和ubuntu20.04

literally鼓鼓秋秋一早上,啥也没弄出来安装python2 virtual environmentsudo apt install python2 virtualenv创建一个虚拟环境$ virtualenv --python=$(which python2) /path/to/newenv/folder/$(which python2)就是python2的安装路径,后面那个就是新建的vm所在的路径。...

2021-09-23 09:17:33 143

原创 HHKB连不上Ubuntu

ubuntu

2021-09-23 08:53:33 1161

原创 编译再反编译一个C

这只是一个笔记,不是一个教程。我太菜了,自己还都不会,不配写教程。编译首先当然是写一个hello.c然后用gcc最常用的flag"-o"编译,意思是把output写进一个output file然后再用"-g" 编译,意思是生成debug的信息,最直白的意思就是用gdb调试的话可以看到一行一行的代码。(所以-g加上之后gcc会做哪些额外的操作:1.创建一个符号表,包含程序中使用变量名称的列表; 2.关闭所有的优化机制,这样一来程序执行的时候就完全按照source code来进行。---

2021-09-23 05:49:51 135

原创 IDA PRO不会用笔记

这两天也下载了ida free7 和ida pro 6.2,free和pro的功能差距还是挺大的,起码pro可以写python script,但下载和安装都差不多。环境是ubuntu 20.04.3 LTS首先下载到那个.run file, 然后到文件路径下跑chmod +x ida.run./ida.run安装成功之后,桌面上会多两个.desktop文件,一个是ida的一个是ida pro的。上面有写execution路径。我的就是在安装路径下跑./idaq64. 弹出一个窗口.

2021-09-20 05:07:18 1212

原创 反汇编笔记

Disassembly:反汇编,就是把0/1机器代码转化成汇编代码,是低级转高级的过程。the ida pro book把语言分成四代:第一代:是由0和1组成的机器语言,也是最低级的语言lowest language。我们平时说的machine language, byte code, binaries全都是指的这个。executable 第二代:assembly language。汇编语言通过查表转换成machine code 第三代:C, JAVA这种语言都是高级语言。platform

2021-09-20 04:45:24 125

原创 读Function Type Signatures

1. Introduction对可执行代码的二进制码分析是一个计算机安全的经典问题。COTS二进制码的源代码通常得不到。由于编译器是不会保存比如types之类的语言信息,在汇编过程中,reverse engineering(反编译)需要从二进制代码中反向得到源代码的语义信息。从机器代码里重新获得语义在code hardening, bug-finding, clone detection, patching/repair 和 analysis领域都很重要。二进制代码分析包括静态反编译运算指令和恢复流程、

2021-09-16 05:29:42 155

原创 读 A robust self-learning method for fully unsupervised cross-lingual mappings of word embeddings

简单说length normalization就是在TFIDF统计词在文本中匹配的次数的时候文本长度的影响。比如给定一个query和一长一短两个文本,如果那个长文本贼长,那它就有更大的可能性匹配上这个query。length normalization用文本长度归一化函数来panelize一个长文本。具体还有不能过度惩罚和pivoted length normalizer(ROSS: pivot!pivot!pivot!)[length normalization](https://yxkemiya.git

2021-09-13 23:54:35 264

原创 The Basics of Logic Design逻辑电路设计

参考的是Harris这本书的appendix B:David A. Patterson and John L. Henessy, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, Morgan Kaufman, 2014计算机里面的都是数字电路,就是由逻辑门组成的0/1电路。优点就是抗干扰能力强,可以处理复杂电路。(和数字电路相对应的就是模拟电路了,是以连续函数形式模拟电路的。)数字电路只有高电

2021-09-13 12:08:45 210

原创 读Unsupervised NMT

UNSUPERVISED NEURAL MACHINE TRANSLATION1. translation是基于word embedding。embedding的时候分别train两个language embedding。用一个小的配好对的字典(seed dictionary)做mapping,去找到两个language相对应的words,在这个过程中得到一个关于对应关系的线性函数来对应两个language embedding里面其他所有的词。相当于seed dictionary里面的是ground t

2021-09-13 07:02:25 93

原创 Binary code similarity detection(BCSD)

为什么要有BCSD:binary code:二进制代码,是给计算机看的computer language。source code:源代码,就是人类可读的代码。我们平时说的C++,Java之类的都是source code如果有source code的话,那肯定是分析source code最好看懂。但就是因为很多时候我们拿不到source code,能拿到手的就只有binary code。比如third party libraries。 所以就会想办法分析binary code。但人又binary

2021-09-10 09:46:23 544

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除