ASM

mac安装pwntools(python3.8)解决多数问题

与世无争的帅哥 提交于 2020-05-05 12:45:30
mac安装pwntools(python3.8)解决多数问题 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 安装pwntools 贴一下官方文档地址 http://docs.pwntools.com/en/stable/install/binutils.html#mac-os-x 采用 homebrew 安装 brew install pwntools 一顿等待之后 配置python 进入python目录 /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages 创建mypath.pth 把下面的这段话写上去 /usr/local/Cellar/pwntools/4.0.1_1/libexec/lib/python3.8/site-packages 发现有错误,提示我们安装binutils 安装binutils export ARCH='amd64' brew install https://raw.githubusercontent.com/Gallopsled/pwntools-binutils/master/osx/binutils-$ARCH.rb 还是报错,是因为地址的问题,改动了一下 brew

Java中jdk代理和cglib代理

陌路散爱 提交于 2020-05-05 12:14:43
代理模式 给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 在Java中代理模式从实现方式上可以分为两个类别:静态代理和动态代理 静态代理: 也就是我们学习设计模式之代理模式时常见的事例,具体不在赘述,参见: 【Java设计模式-13代理模式】 动态代理: 在静态代理中,因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类。同时,一旦接口增加方法,目标对象与代理对象都要维护。那么如何解决这种问题呢?答案就是动态代理,下面会使用两种动态代理(jdk代理、cglib代理)分别实现同一个事例来体会一下动态代理的实现。 动态代理 动态代理具有以下特性: 1.代理对象不需要实现接口 2.代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象 jdk代理 只支持对接口的的实现,其实现主要通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。 Proxy类主要用来获取动态代理对象,InvocationHandler接口用来约束调用者实现。 JDK的动态代理用起来非常简单,但它有一个限制,就是使用动态代理的对象必须实现一个或多个接口 package com.lkf.parttern

嵌入式Linux之虚拟内存地址空间布局(Virtual Memory Space)

北城以北 提交于 2020-05-05 01:48:25
虚拟内存地址空间   Linux内核属于微内核的范畴,内核控制计算机的硬件资源,运行在特权模式;用户态应用程序运行在普通用户模式,无法直接访问硬件资源,必须依托于内核提供的资源,如CPU资源、Memory资源、I/O资源等。   Linux采用沙箱机制,每一个进程运行在独立的虚拟地址空间,最大限度避免单个进程异常导致整个系统崩溃。   每一个进程的虚拟地址空间分为内核虚拟地址空间和用户虚拟地址空间两部分,内核虚拟地址空间为内核态代码和内核堆栈,所有进程的内核虚拟地址空间是复用的;用户虚拟地址空间则是各进程的代码段、数据段、BSS段、mmap段(动态加载库以及各库运行数据段、运行栈等)、堆、栈、环境变量等信息。   Linux中可以通过cat /proc/<pid>/maps命令查看指定进程的用户虚拟地址空间的映射,也可以通过pmap -x <pid>查看,该命令实质上是基于/proc/<pid>/maps实现的。 ARM32 用户虚拟地址空间范围:0x0000 0000 ~ 0xbfff ffff 内核虚拟地址空间范围:0xc000 0000 ~ 0xffff ffff ARM64   ARMv7架构(32位CPU)早期CPU采用32位物理地址空间,支持最大物理内存为4GB。但是随着内存容量和软件的扩张,4GB物理内存寻址范围已经不够用了,所以引入了LPAE(Large

知相守的温馨浪漫在一封

你说的曾经没有我的故事 提交于 2020-05-03 18:35:45
sdfsdf 服务网格作为一个改善服务到服务通信的专用基础设施层,是云原生范畴中最热门的话题。随着容器愈加流行,服务拓扑也频繁变动,这就需要更好的网络性能。服务网格能够通过服务发现、路由、负载均衡、心跳检测和支持可观测性,帮助我们管理网络流量。服务网格试图为无规则的复杂的容器问题提供规范化的解决方案 将供应链搬出中国,似乎成了过去两三个月新冠肺炎疫情衍生出的热门话题。 年初新冠肺炎疫情爆发,让中国供应链的生产活动几乎完全停顿,影响席卷全球:苹果的新 5G 有可能因疫情而延期推出,特斯拉新款芯片无法及时交付、陷入“芯片门”纠纷。其余像三星、小米、索尼等著名跨国企业,均受到供应链停摆的影响。 因此,ntdunin.answers.yahoo.com/question/index?qid=20200427222523AAIToxM?IN8=86prx=67a malaysia.answers.yahoo.com/question/index?qid=20200427222523AAIToxM?IL3=34izh=10t sg.answers.yahoo.com/question/index?qid=20200427222523AAIToxM?UV6=43twc=23t hk.answers.yahoo.com/question/index?qid

2018.5.3 maven

丶灬走出姿态 提交于 2020-05-02 16:53:38
1 maven基本概念 1.1maven是什么 1)软件项目管理和理解工具 2)项目对象模型(Project Object Model,POM) 3)项目的构建、报告和文档的中心信息 1.2maven仓库 1.3 pom.xml a)groupId:项目或者组织的唯一标志 b)artifactId: 项目的通用名称 c)version:项目的版本 d)packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar 1.4 lifecycle validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件,至目标目录,准备打包。 compile 编译项目的源代码。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 复制并处理资源文件,至目标测试目录。 test-compile 编译测试源代码。 process-test-classes test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。 prepare-package package

OI生涯回忆录 2018.11.12~2019.4.15

ぐ巨炮叔叔 提交于 2020-05-02 05:43:43
上一篇: OI生涯回忆录 2017.9.10~2018.11.11 一次逆风而行的成功,是什么都无法代替的 ………… 历经艰难 我还在走着 一 NOIP之后,全机房开始了省选知识的自学。 动态DP,LCT,后缀数组,后缀自动机,多项式 NOIP获得全省第六名好成绩的我, 自以为省队纳入囊中只是时间问题 学习效率并不高效。 12月培训由于自学过 听课效果很好,实际上并没有收获和总结太多。 当时问郭神算法的问题, 他说: “算法不在多,而在于精” 事实证明, 此言得之。 太多的自满,太多的不深刻 太多的不联系反思。 省队,其实越来越远了。 二 内部举行了几次IOI赛制比赛,成绩都不理想。 在剩下可能冲击省队的9人中, 实力稳定倒数第一。 不明白为什么会这样, 别人可以想到,但是我为什么没有想法? 刷题量确实很低,但是凭借我的总结的长处,为什么还是不能前进? 博客新开了一个涂鸦墙,记录一些心情的波动: 12.26 不太爽啊,考试连续30pts,苟上了一次100............但是考试的题目确实很好,也值得总结思考。 1.9 继续考试30pts 智商不足哪里充值啊......思维和经验也不够啊........ 出于某种未知原因,放弃一心想去的THUWC,而选择了PKUWC 两天下来, 实力不足,自信萎靡,心态爆炸,思路紊乱………… PKUWC成功没进面试滚粗

C++ 的关键字(保留字)完整介绍

痴心易碎 提交于 2020-05-02 05:09:36
转载至: https://www.runoob.com/w3cnote/cpp-keyword-intro.html 1. asm asm (指令字符串):允许在 C++ 程序中嵌入汇编代码。 2. auto auto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。 从 C++ 11 开始,auto 关键字不再是 C++ 存储类说明符 3. bool bool(布尔)类型,C++ 中的基本数据结构,其值可选为 true(真)或者 false(假)。C++ 中的 bool 类型可以和 int 混用,具体来说就是 0 代表 false,非 0 代表 true。bool 类型常用于条件判断和函数返回值。 4. break break(中断、跳出),用在switch语句或者循环语句中。程序遇到 break 后,即跳过该程序段,继续后面的语句执行。 5. case 用于 switch 语句中,用于判断不同的条件类型。 6. catch catch 和 try 语句一起用于异常处理。 7. char char(字符,character)类型,C++ 中的基本数据结构,其值一般为 0~255 的 int。这 256 个字符对应着 256 个 ASCII 码。char 类型的数据需要用单引号 '

Windows下如何调试驱动程序

寵の児 提交于 2020-05-01 01:20:40
Windows内核分析索引目录 :https://www.cnblogs.com/onetrainee/p/11675224.html 一、配置Windbg使用双机调试    win10中“windbg+vmware+win7双机调试”设置 :https://blog.51cto.com/duallay/1982741 二、设置好Windbg符号表   注意:不同的符号表项之间使用 引号(;) 分割。        1) 表中填写如下内容:      srv*d:\symbolslocal*http://msdl.microsoft.com/download/symbols;     C:\Users\97905\source\repos\KMDF Driver1\Debug      第一项是操作系统所调试的符号,当在 "d:\symbolslocal" 找不到时,其会前往微软官方 "http://msdl.microsoft.com/download/symbols"下载该符号表。     第二项是被调试软件所使用的符号,在生成 驱动文件.sys 时还对应生成一个很大的 驱动.pdb 文件,该文件就是用来调试驱动程序的符号文件。    2)在windbg中使用 " .reload " 命令加载符号表,等待一段时间使其加载完成。 三、在驱动代码中添加 `int 3` 断点   

Gmssl与Openssl版本兼容安装方式,解决gmssl安装后,openssl无法使用的问题

半城伤御伤魂 提交于 2020-04-30 20:00:07
unzip master.zip cd GmSSL-master/ ./config --prefix=/usr/local/gmssl --openssldir=/usr/local/gmssl no-shared //“--prefix=/usr/local/gmssl” 指定安装路径 “no-shared” 只编译静态库,不编译动态库,解决和openssl兼容问题 make make install 进入安装后的目录查看安装结果 cd /usr/local/gmssl/bin/ [root@localhost bin]# ls c_rehash gmssl openssl 查看openssl版本 [root@localhost bin]# openssl version -a OpenSSL 1.1.1c FIPS 28 May 2019 built on: Fri Nov 8 21:33:10 2019 UTC platform: linux-x86_64 options: bn(64,64) md2(char) rc4(16x,int) des(int) idea(int) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -O2 -g -pipe -Wall

深入Linux内核架构—内存管理(三)

痴心易碎 提交于 2020-04-30 17:52:26
一、页表 层次化的页表用于支持对大地址空间的快速、高效的管理。考察具体的技术实现。 页表用于建立用户进程的虚拟地址空间和系统物理内存之间的关联。到目前为止讨论的结构主要用来描述内存的结构(划分为结点和内存域),同时指定其中包含的页帧的数量和状态(使用中或空闲)。页表用于向每个进程提供一致的虚拟地址空间。应用程序看到的地址空间是一个连续的内存区。该表也将虚拟内存页映射到物理内存,因而支持共享内存的实现(几个进程同时共享的内存),还可以在不额外增加物理内存的情况下,将页换出到块设备来增加有效的可用内存空间。 内核内存管理总是假定使用 四级页表 ,而不管底层处理器是否如此。该假定对IA-32系统是不正确的。默认情况下,该体系结构只使用两级分页系统。因此,第三和第四级页表必须由特定于体系结构的代码模拟。 页表管理分为两个部分,第一部分依赖于体系结构,第二部分是体系结构无关的。所有数据结构和操作数据结构的几乎所有函数都是定义在特定于体系结构的文件中。特定于不同CPU的实现有一些比较大的差别。 在以后几节里描述的数据结构和函数,通常基于体系结构相关的文件中提供的接口。定义可以在头文件include/asm-arch/page.h和include/asm-arch/pgtable.h中找到,下文简称为page.h和pgtable.h。在讨论特定于体系结构的问题时,会明确指出相关的体系结构