mem

How to print RSA* as string in C++?

匿名 (未验证) 提交于 2019-12-03 02:27:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: How to properly print RSA* as string in C++? I am using OpenSSL . It doesn't seem to have a .c_str() method, right? 回答1: RSA_print_fp(stdout, x, 0); http://linux.die.net/man/3/rsa_print_fp 回答2: #include <iostream> using std::cout; using std::endl; #include <string> using std::string; #include <memory> using std::unique_ptr; #include <openssl/bn.h> #include <openssl/rsa.h> #include <openssl/bio.h> #include <openssl/buffer.h> #include <cassert> #define ASSERT assert using BN_ptr = std::unique_ptr<BIGNUM, decltype(&::BN_free)>; using RSA_ptr =

Read and write process' memory through /dev/mem, text segment works but data segment can not, why?

匿名 (未验证) 提交于 2019-12-03 01:22:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I want to read to and write from process' memory through /dev/mem . First , I get process' memory map through a linux kernel module coded by myself, output is like this: start_code_segment 4000000000000000 end_code_segment 4000000000019c38 start_data_segment 6000000000009c38 end_data_segment 600000000000b21d start_brk 6000000000010000 brk 6000000000034000 start_stack 60000fffffde7b00 Second , I can convert virtual address(VA) to PA thorough the linux kernel module, for example, I can convert VA:0x4000000000000008 to PA

(转载)/dev/mem可没那么简单

匿名 (未验证) 提交于 2019-12-02 22:56:40
remap_pfn_range()校验漏洞的利用过程中,熟悉Linux内核地址空间布局非常重要,这篇文章帮助理解这个问题。 参考CVE-2013-2506的PoC:https://github.com/hiikezoe/libfb_mem_exploit 参考材料: http://unix.stackexchange.com/questions/5124/what-does-the-virtual-kernel-memory-layout-in-dmesg-imply?noredirect=1&lq=1 http://unix.stackexchange.com/questions/4929/what-are-high-memory-and-low-memory-on-linux?rq=1 http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory/ http://unix.stackexchange.com/questions/218507/kernel-address-space-layout http://www.cnblogs.com/bizhu/archive/2012/10/09/2717303.html PoC中的kernel_phys_address是由读取/proc/iomem设备得到

LeetCode 140:单词拆分 Ⅱ

不羁的心 提交于 2019-12-02 11:15:11
每次求解子串s的解集时,单独定义一个ans看上去可读性更好,但是试了一下不用ans直接更新mem_,反而速度更快! (我的程序写法更简洁,比huahua的程序简洁一些) class Solution { public: vector<string> wordBreak(string s, vector<string>& wordDict) { unordered_set<string> dict(wordDict.cbegin(), wordDict.cend()); return wordBreak(s, dict); } private: unordered_map<string, vector<string>> mem_; //用mem_记忆每一段string对应的所有分割解 vector<string> wordBreak(string& s, unordered_set<string>& dict) { //检查当前字符串是否被计算过, 如果计算过就直接返回之前得到的解集 if(mem_.count(s)) return mem_[s]; //当前子串 s 的解集 vector<string> ans; //先检查整个字符(子)串是否在字典里, 如果在就直接作为当前s的一种解放入对应的mem_的value中 //if(dict.count(s)) mem_[s].push

系统内存与磁盘检测

拈花ヽ惹草 提交于 2019-11-28 15:40:47
[root@swarm-213 ~]# cat systemissue.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2018-12-17 17:16 # @Author : opsonly # @Site : # @File : systemissue.py # @Software: PyCharm import psutil def memissue(): print('内存信息:') mem = psutil.virtual_memory() # 单位换算为MB memtotal = mem.total/1024/1024 memused = mem.used/1024/1024 print('已用内存:%.2fMB' % memused) print('全部内存:%.2fMB' % memtotal) print('内存使用率:{:.2%}'.format(mem.used/mem.total)) def disklist(): print('磁盘信息:') disk = psutil.disk_partitions() diskuse = psutil.disk_usage('/') #单位换算为GB diskused = diskuse.used / 1024 / 1024 / 1024

使用python进行服务器监控

时光毁灭记忆、已成空白 提交于 2019-11-28 10:33:29
使用python进行服务器监控 Linux服务器中,一切皆为文件。也就是说服务器运行的各种信息,其实是可以从某些文件中查询得到; Linux系统中,有一个/proc的虚拟文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数)。与其他文件系统不同,/proc 存在于内存而不是硬盘中。proc 文件系统提供的信息如下: 1.进程信息:系统中的任何一个进程,在proc的子目录中都有一个同名的进程ID,可以找到cmdline、mem、root、stat、statm以及status。某些信息只有超级用户可见,例如进程根目录。每一个单独含有现有进程信息的进程有一些可用的专门链接,系统中的任何一个进程都有一个单独的自链接指向进程信息,其用处就是从进程中获取命令行信息。 2.系统信息:如果需要了解整个系统信息中也可以从/proc/stat 中获得,其中包括 CPU 占用情况、磁盘空间、内存对换、中断等 3.CPU 信息:利用/proc/CPUinfo

until语句

人走茶凉 提交于 2019-11-27 13:19:46
与while用法相同 区别   只有判断条件为false的时候,才会进入循环语句 练习: 写一个脚本,完成如下任务 1、显示一个如下的菜单   Cpu)显示cpu信息     cat /proc/cpuinfo   Mem)显示内存信息     free -m   Disk)显示磁盘信息     fdisk -l   Quit)退出     exit 0 2、提示用户选项 3、那些是用户选项的内容 #!/bin/bash# Author: 埃希123  # Blog: https://www.cnblogs.com/lyali/  # Time: 2019-08-09 20:17:50  # Name: asd.sh  # Version: v1.0  # Description: This is a Script. #写一个脚本,完成如下任务 #1、显示一个如下的菜单 #  Cpu)显示cpu信息 #  Mem)显示内存信息 #  Disk)显示磁盘信息 #  Quit)退出 #2、提示用户选项 #3、那些是用户选项的内容 cat << EOF 菜单 ================== Cpu)显示cpu信息 Mem)显示内存信息 Disk)显示磁盘信息 Quit)退出 ==================== EOF while true;do read -p

/dev/mem

半腔热情 提交于 2019-11-27 10:27:36
linux 内核为用户提供了一个/dev/mem的驱动程序,使用户直接访问系统物理内存成为可能,利用mmap和/dev/mem可以建立起直接读写系统物理内存的渠道。 /dev/mem是linux下的一个字符设备,源文件是kernel/drivers/char/mem.c,这个设备文件是专门用来读写物理地址用的。里面的内容是所有物理内存的地址以及内容信息。通常只有root用户对其有读写权限。源引网络资源对/dev/mem是这么评价的“/dev/mem是个好玩的东西,你竟然可以直接访问物理内存,这在linux下简直太神奇了,就想一个小偷想偷银行,可是发现银行戒备森严,正在小偷苦无对策的时候,突然发现银行有个后门,而且这个后门直通银行的金库。” 来源: https://www.cnblogs.com/yangxingsha/p/11359539.html

jQuery攻略之数组处理

独自空忆成欢 提交于 2019-11-26 21:33:53
(每一段 jQuery 对应一段 html 代码,以标记为准则 ,css 为共用代码,每段代码需独立运行。 html 和 css 代码在文章尾部,如下例) 数组的处理 eg1 $(document).ready( function () { var num = ["盖茨","乔布斯","马克","苏国强"]; $('p').text(num.join(",")); }); eg2 $(document).ready( function () { var num = ["盖茨", "乔布斯", "马克", "苏国强"]; $('p').html(num.join("<br>")); }); eg3 $(document).ready( function () { var memlist = $("#list"); var num = ["盖茨", "乔布斯", "马克", "苏国强"]; $.each(num, function (index, value) { memlist.append($("<li>" + value + "</li>")); }); }); eg4 $(document).ready( function () { var num = $("li").get(); $('p').text("数组元素的数量:" + num.length); }); 对数组操作