luodaoyi's Blog

能用就行

精通ASM/C/C++/RUST/C#/Java/JavaScript/Python/Golang/ruby 的Hello World 编写。

luodaoyisince 2014 208 篇文章

9.汇编-JCC

之前可以修改EIP寄存器的指令 JMP,CALL,RETN 所有JCC指令的动作->根据标志寄存器修改EIP的值 标志寄存器 EFLAGS CF(bit 0)[Carry flag] C位 若算术产生的结果在最高有效位(most-significant bit)发生进位或者借位则将其置1 反之清零 这个标志通常用来指示无符号证书运算的溢出状态

群辉dsm SVN迁移

公司买了群辉nas服务器,用来备份数据和代码 之前的svn服务器用的windows,出现过数据丢失的问题,并且不够可靠。所以迁移到了nas的svn服务器 折腾了一下午,折腾出来几个方案 svn dump方案 此方案是最慢的方案,起初用了此方案,导出了只有700多次提交的一个svn仓库。 最后结论是 导出满,导入他妈的更慢。并且库下面的passd和authz不 …

8. 汇编-ESP寻址 EBP寻址

寄存器传参和堆栈传参 寄存器传参 MOV ECX,1 MOV EBX,2 CALL XX MOV EAX,ECX ADD EAX,EBX RETN 堆栈传参 –ESP寻址 PUSH 1 PUSH 2 CALL XXX MOV EAX,DWORD PTR SS:[ESP+8] //当内存中括号中包含ESP或者EBP的话 用SS ADD EAX,DWORD …

7.汇编-汇编中的函数

什么是函数 函数就是一系列指令的几个,为了完成某个会重复使用的特定功能 函数调用 用JMP来执行函数 用CALL来执行函数 函数的参数和返回值 通常情况下,会将函数的计算结果放到EAX寄存器中 EAX 通常用来放返回值 简单的加法函数 ADD ECX,EDX //传参 MOV EAX,ECX //传结果到EAX中 RETN 堆栈传参 如果参数很多怎么办?10 …

6.汇编-修改EIP的指令

EIP寄存器 EIP寄存器表示CPU下次执行的位置 JMP指令 JMP指令相当于给EIP寄存器赋值 JMP后面只能是32位的 指令格式: MPV EIP,寄存器/立即数/内存 简写:JMP 寄存器/立即数/内存 JMP 0x00FF19 -> MOV EIP,0X00FF19 JMP EAX -> MOV EIP,EAX JMP DWORD PTR …

5.汇编-堆栈相关指令

什么是堆栈 程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要和操作系统申请内存 堆栈是程序的心脏,程序中需要用到的重要数据,都在堆栈中体现 就是一块特殊的内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用 和数据结构的堆栈无关 查看堆栈 正常内存使用从小地址往大地址使用,堆栈中从大地址往小地址使用 当堆栈用完了就会出现 …

2.汇编-内存

寄存器数量和容量有限,为了存储大量数据,所以我们需要内存 每个程序都会有自己的独立的4GB内存空间( 这里的内存其实是虚拟的,并不是真的给了程序4G内存,当程序读或者写这段内存的时候,操作系统才会把使用的内存映射到物理内存上 物理内存和内存条之间还有一层映射

4. 汇编-内存复制指令

标志寄存器 EFL EFL是32位寄存器 其中的每一位,含义都是不同的 0x00000246 16进制 0000 0000 0000 0000 0000 0010 0100 0110 二进制 第十位(从下标开始算 从右往左):DF位 DF位为``的时候: MOVS 执行完毕之后 ESI和EDI的值会增加 DF位位1的时候: MOVS 执行完毕之后 ESI和 …

3.汇编-常用汇编指令

1. MOV指令(赋值) 含义:前者被后者赋值 exp: MOV EAX,0xFFFFFFFF 此时 EAX = 0xFFFFFFFF 指令格式: MOV r/m8,r8 MOV r/m16,r16 MOV r/m32,r32 MOV r8,r/m8 MOV r16,r/m16 MOV r32,r/m/32 MOV r8,imm8 MOV r16,imm16 …

1.汇编-寄存器

寄存器介绍 寄存器是什么 计算机在三个地方可以存数据 cpu 内存 硬盘 所谓寄存器,就是cpu中硬盘存储数据的地方 寄存器的大小 寄存器大小取决于cpu的位数 比如32位 那么cpu所提供的容器有三种 8位 16位 32位 如果64位 那么cpu所提供的容器有四种 8位 16位 32位 64位 05年后的电脑cpu几乎都是64位的。

C#在winform中调用系统控制台输出

在Winform程序中有时候调试会通过Console.Write()方式输出一些信息,这些信息是在Visual Studio的输出窗口显示。 所以就会想,能不能调用系统的Cmd窗口输出呢,经过一番查阅,发现是可以的,现在就把方法写下了: 主要用到的是win32 API函数实现的:

windows 安装服务

方法1 :sc 安装 1 2 3 //bin目录加上 "s" 证明是从windows服务启动该程序 sc create server_name binpath="bin_path s" displayName="display_name" start=auto sc create elasticsearch_index_sync …

python异步多线程超高性能爬虫爬取又拍云图片

前言 最近有个奇葩需求: 要把又拍云所有的图片全都下载下来 大约10T 3亿张左右 联系又拍云 能否邮寄硬盘直接拷贝,答曰不行。。但是给了个下载的python脚本 download_file_with_iter.py 我怀着感激的心情下载下来,结果一秒不到3张。。实在是慢,于是乎打算自己写一个 版本1 这是刚做的时候的版本,直接使用aio的队列, 环境 …

同一局域网环境下的arp欺骗和中间人攻击(mac)

最近读了一篇有关arp欺骗和中间人攻击的文章,于是乎就想着自己实现一下,顺便验证下微信在回话劫持后的安全性。 1.本机环境 Macbook Air:OS X 10.11 El Captain 2.推荐工具 Nmap(网络探测工具和安全/端口扫描器) $ brew install nmap Ettercap(arp欺骗和dns欺骗工具) $ brew …

使用hping3/nping施行DoS攻击

DDoS攻击是常见的攻击方式,每小时大约发生28次。http://www.digitalattackmap.com提供在世界范围内的DDoS实时攻击分布图: 从DDoS攻击的地图上就可以看出国际形势;例如,到9月18号可以看到日本-中国的攻击;川普宣布建墙之后,可以看到墨西哥-美国的攻击。 使用hping3进行DoS攻击: # hping3 -c 10000 …

Kali Linux:使用nmap扫描主机

nmap-Network Mapper,是著名的网络扫描和嗅探工具包。他同样支持Windows和OS X。 扫描开放端口和判断操作系统类型 先让我们ping一段地址范围,找到启动的主机: # nmap -sP 159.203.205.0-100 使用SYN扫描探测操作系统类型: # nmap -sS 159.203.205.61 -O 扫描开放端口: # …

Kali Linux安装SSH Server

Kali Linux默认并没有安装SSH服务,为了实现远程登录Kali Linux,我们需要安装SSH服务。 安装 OpenSSH Server # apt-get install openssh-server 配置SSH服务开机启动 # update-rc.d -f ssh remove # update-rc.d -f ssh defaults # …

HTTrack – 克隆任意网站

HTTrack可以克隆指定网站-把整个网站下载到本地。 可以用在离线浏览上,也可以用来收集信息(甚至有网站使用隐藏的密码文件)。 一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做的。 Kali Linux默认安装了HTTrack。 HTTrack帮助:

使用tor实现匿名扫描/SSH登录

你要做坏事时,最先应该想到匿名。扫描网站/主机,或利用漏洞;甚至在大天朝发帖都有风险,为了防止半夜鬼敲门,我们可以使用tor实现匿名。 如果你不知道tor是什么,看:https://zh.wikipedia.org/wiki/Tor ; https://program-think.blogspot.com/2013/11/tor-faq.html 图示: 在 …