data

linux ptrace系统调用探究

落爺英雄遲暮 提交于 2020-03-06 17:21:43
1. ptrace 函数简介 Ptrace是一个系统调用,它提供了一种方法来让‘父’进程可以观察和控制其它进程的执行,检查和改变其核心映像以及寄存器。 主要用来实现断点调试和系统调用跟踪。利用ptrace函数,不仅可以劫持另一个进程的调用,修改系统函数调用和改变返回值,而且可以向另一个函数注入代码,修改eip,进入自己的逻辑。这个函数广泛用于调试和信号跟踪工具。 ptrace使用场景: 由于ptrace可以跟踪运行进程并修改寄存器与内存,因此可以用于以下用途。 黑客利用该特性进行代码注入。 不退出进程,进行在线升级。 开发追踪调试工具。 函数定义 #include <sys/ptrace.h> long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); 函数参数解释 request:请求执行的行为,可能选择有 PTRACE_TRACEME //指示父进程跟踪某个子进程的执行。任何传给子进程的信号将导致其停止执行,同时父进程调用wait()时会得到通告。之后,子进程调用exec()时,核心会给它传送SIGTRAP信号,在新程序开始执行前,给予父进程控制的机会。pid, addr, 和 data参数被忽略。 PTRACE_PEEKTEXT, PTRACE_PEEKDATA /

O2OA教程-业务开发与设计-系统应用权限控制-外系统启动流程

限于喜欢 提交于 2020-03-06 16:40:55
第一步:单点登入 一、创建SSO配置,请参考组织管理里中的SSO管理 二、通过下面代码获取token. String token = "" ; //单点登入 String path = " http : //127.0.0.1:20020/x_organization_assemble_authentication/jaxrs/sso "; long time = new Date (). getTime (); String login_uid = "test" ; String sso_key = "12345678" ; String xtoken = null ; try { xtoken = Crypto . encrypt ( login_uid + "#" + time , sso_key ); System . out . println ( xtoken ); } catch ( Exception e1 ) { e1 . printStackTrace (); } String string = "{\"token\": " + xtoken + ", \"client\": \"unicom\"}" ; String str = HttpClientUtils . getInstance (). sendPost ( path , string ); try

O2OA教程-业务开发与设计-系统应用权限控制-系统交互样例-登录认证 For Java

二次信任 提交于 2020-03-06 16:37:36
使用Java程序发送Http请求进行o2server登录认证 o2server向外提供了非常完整的restful服务,用户可以使用任何语言,编写代码发起http请求来进行o2server功能和业务的操作。大多数服务的调用,都需要进行登录认证,本篇详细介绍如何使用其他语言来发送http请求进行服务器认证。 (1)发送用户名使用SSO进行登录认证 此示例演示如何通过登录用户名,和SSO相关的配置,使用单点认证的方式进行O2Server的登录认证,获取xtoken信息 涉及到加密解密,请使用非中文的唯一标识进行登录 ,中文登录 有可能会有找不到用户的问题。 一、o2Server平台SSO配置 1、使用管理员(或者xadmin)登录O2OA 2、打开系统菜单->控制面板->系统设置->SSO配置 打开控制面板 进入系统设置 进入SSO配置 3、添加SSO配置 添加一个SSO配置 4、重启o2server 二、编写登录代码 完整代码内容: O.java package net . o2oa . demos ; import java . io . BufferedReader ; import java . io . IOException ; import java . io . InputStreamReader ; import java . io . PrintWriter ;

core data浅析

会有一股神秘感。 提交于 2020-03-06 14:06:06
Core data 浅析 类似于之前使用过的 FMDB ,是苹果自带的,管理数据库的工具。 使用原因: 它能让你为 model 层写的代码更简洁,无需优化,无需测试。 Core data 能利用 model 层的信息和运行时的特性,而不是通过过程层的代码实现的。 除了能提供强大的安全支持和错误处理外,它还提供了最优的内存扩展性,可实现有竞争力的解决方案。 主要是 iOS 对 sqlite 数据库的封装。 有对象一一关系的映射功能,能把 oc 的对象存储成数据库或 xml 等。 读取时不需要使用 sql 语句。 误解: 不是关系型数据库,也不是关系型数据库管理系统( RDBMS ), core data 为数据变更管理,对象存储,对象读取恢复功能提供了支持。它可以使用 sqlite 做为持久化存储的类型、它本身不是一个数据库。 代码步骤: 1. 导入库 <core data.framework> 和 <core data/core data.h > 2. 这样托管对象模型知道所有当前工程中用到的托管对象的定义,创建一个 NSmanaged ObjectModel 数据模型文件 1> 创建数据模型文件 ->new file ->core data -> 选中 data model ,创建文件( user.xcdatamodeld ) 2> 创建跟数据模型文件关联的数据模型类, new

PHP开发API离不开签名验证,你是如何设计?

我们两清 提交于 2020-03-06 10:28:36
开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。 我们在设计签名验证的时候,请注意要满足以下几点: 可变性:每次的签名必须是不一样的。 时效性:每次请求的时效,过期作废等。 唯一性:每次的签名是唯一的。 完整性:能够对传入数据进行验证,防止篡改。 这里介绍一种方式,是目前国内互联网公司常用的一种方式,其中淘宝的支付宝支付接口、淘宝开放平台接口、腾讯开放平台等应用的一种方式。 一、签名参数sign生成的方法 第1步: 将所有参数(注意是所有参数),除去sign本身,以及值是空的参数,按参数名字母升序排序。 第2步: 然后把排序后的参数按参数1值1参数2值2…参数n值n(这里的参数和值必须是传输参数的原始值,不能是经过处理的,如不能将"转成”后再拼接)的方式拼接成一个字符串。 第3步: 把分配给接入方的验证密钥key拼接在第2步得到的字符串前面。 第2步: 在上一步得到的字符串前面加上验证密钥key(这里的密钥key是接口提供方分配给接口接入方的),然后计算md5值,得到32位字符串,然后转成大写. 第4步: 计算第3步字符串的md5值(32位),然后转成大写,得到的字符串作为sign的值。 举例: 假设传输的数据是/interface.php?sign=sign_value&p2=v2& p1

NFS

若如初见. 提交于 2020-03-06 10:20:21
10.9.236.189 636 yum install -y nfs-utils rpcbind 637 vim exports 638 mkdir /data/nfs 639 chown -R nfsnobody.nfsnobody /data/nfs 640 /etc/init.d/rpcbind start 641 find / -name rpcbind 642 service rpcbind start 643 lsof -i :111 644 service nfs start 645 rpcinfo -p localhost 646 showmount -e 127.0.0.1 647 showmount -e 10.9.236.189 648 showmount -e 649 cat /var/lib/nfs/etab 650 cat /etc/exports ( echo "/data/nfs 10.9.236.0/24(rw,sync)">>/etc/exports ) 651 vim /etc/exports 652 service rpcbind restart 653 service nfs restart 654 showmount -e 10.9.236.0/24 655 showmount -e 10.9.236.189 656 mkdir

百度echart使用心得,百度图表。

馋奶兔 提交于 2020-03-06 08:39:37
百度echart算是百度针对数据展示做的一个图表插件吧,一般我们使用都不是问题,主要还是对于对动态数据的解析。我这里使用饼状图,和柱状图为例: 首先,我们需要定义一个绘图的容器:(class是我自己定义的,这个容器用一个div就可以) <div class="fm_box pd-10 border-grey" id="shanxing" style="height: 500px;"></div> <div class="fm_box pd-10 border-grey" id="zhuzhuang" style="height: 500px;"></div> 然后需要引入我们的echart.min.js. 准备工作做好后,下面就是我们初始化图表的时候了。 首先我们需要定义两个mychart分别作为我们的扇形图和柱状图 var myChart = echarts.init(document.getElementById('shanxing')); var myChart2 = echarts.init(document.getElementById('zhuzhuang')); 然后分别定义option:就是数据格式的写入:(这里因为有两个图,数据分别用option ,option2来表示) option = { title : { text: '某站点用户访问来源', x:

百度echart使用心得,百度图表。

谁说胖子不能爱 提交于 2020-03-06 08:38:49
前一段时间公司做了舆情相关的软件,舆情用到了大量的图表,相当大的数据交互。当时没有整理下来,昨天有一次用到这些东西,所以准备记录下来,方便以后使用。 百度echart算是百度针对数据展示做的一个图表插件吧,一般我们使用都不是问题,主要还是对于对动态数据的解析。我这里使用饼状图,和柱状图为例: 首先,我们需要定义一个绘图的容器:(class是我自己定义的,这个容器用一个div就可以) <div class="fm_box pd-10 border-grey" id="shanxing" style="height: 500px;"></div> <div class="fm_box pd-10 border-grey" id="zhuzhuang" style="height: 500px;"></div> 然后需要引入我们的echart.min.js. 准备工作做好后,下面就是我们初始化图表的时候了。 首先我们需要定义两个mychart分别作为我们的扇形图和柱状图 var myChart = echarts.init(document.getElementById('shanxing')); var myChart2 = echarts.init(document.getElementById('zhuzhuang')); 然后分别定义option:就是数据格式的写入:

MongoDB-启动的时候出现了问题

纵饮孤独 提交于 2020-03-06 08:09:38
之前MongoDB启动的时候是正常的,不知道后来启动报错了,就把粘贴出来查询了。最后才知道是由于自己不正常的关闭导致的这个情况。 --摘录:MongoDB非正常关闭后修复记录 mongod没有后台执行,在终端连接非正常断开后,再次执行mongod报错,如下所示: 2015-03-09T20:39:20.172+0800 2015-03-09T20:39:20.172+0800 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 2015-03-09T20:39:20.172+0800 about to fork child process, waiting until server is ready for connections. forked process: 14229 ERROR: child process failed, exited with error number 100 修复方法: 这算是一个Mongod 启动的一个常见错误,非法关闭的时候,lock 文件没有干掉,第二次启动的时候检查到有lock 文件的时候,就报这个错误了。 解决方法:进入 mongod 上一次启动的时候指定的 data 目录

centos7 配置ftp访问

谁说胖子不能爱 提交于 2020-03-06 06:48:22
vsftp安装 创建用户 并限定用户在自己的目录 1、查看是否已经安装了 vsftpd vsftpd -version 2、安装vsftpd( CentOS7 ) yum install -y vsftpd 3、新建FTP目录 创建的FTP目录如下: mkdir -p /data/KodServer/data/User/tomas/home 4、创建新用户 ftpname为你为该ftp创建的用户名,/data/KodServer/data/User/tomas/home 为登录进去后的位置 useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname 5、为新建的用户设置密码 passwd ftpname 【备注:用cat etc/passwd可以查看当前系统用户】 6、设置主目录(更改登录时看到的目录,看个人需要更改,如果第4步已设置好,此步可忽略) usermod -d /data/KodServer/data/User/tomas/home ftpname 7、添加用户组(这步可忽略) groupadd ftpgroup 这里如果三root用户创建的文件夹,要把文件夹的全线给新建的用户, 否则能访问但是不能上传 chmod ftpname:ftpgroup /data/KodServer/data