自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (9)
  • 收藏
  • 关注

转载 TCP流量控制窗口与拥塞控制窗口关系

一、滑动窗口滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。对ACK的再认识,ack通常被理解为收到数据后给出的一个确认ACK,ACK包含两个非常重要的信息:一是期望接收到的下一字节的序号n,该n代表接收方已经接收到了前n-1字节数据,此时如果接收方收到第n+1字节数据而...

2019-08-03 09:40:33 1343

转载 操作系统常用的调度算法总结

1 常见的批处理作业调度算法  1.1 先来先服务调度算法(FCFS):  就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。  1.2 短作业优先调度算法(SPF):   就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在...

2019-07-25 11:46:47 888 1

转载 计算机知识

###关键字作用解释: volatile作用Volatile关键词的第一个特性:易变性。所谓的易变性,在汇编层面反映出来,就是两条语句,下一条语句不会直接使用上一条语句对应的volatile变量的寄存器内容,而是重新从内存中读取。Volatile关键词的第二个特性:“不可优化”特性。volatile告诉编译器,不要对我这个变量进行各种激进的优化,甚至将变量直接消除,保证程序员写在代码中...

2019-07-25 08:52:51 242

转载 并发编程(IO多路复用)

阅读目录一 IO模型介绍 二阻塞IO(blocking IO) 三非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块IO模型介绍  为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synch...

2019-07-24 15:10:46 96

转载 网络学习知识

https://blog.csdn.net/sinat_36629696/article/details/80740678 tcphttps://blog.csdn.net/m0_37962600/article/details/79993310 拥塞控制https://blog.csdn.net/shawei_/article/details/81775504 滑动窗口...

2019-07-23 14:35:28 154

转载 MySQL索引原理及BTree(B-/+Tree)结构详解

目录摘要数据结构及算法基础索引的本质B-Tree和B+TreeB-TreeB+Tree带有顺序访问指针的B+Tree为什么使用B-Tree(B+Tree)主存存取原理磁盘存取原理局部性原理与磁盘预读B-/+Tree索引的性能分析MySQL索引实现MyISAM索引实现InnoDB索引实现索引使用策略及优化示例数据库最左前缀原理与...

2019-07-23 13:54:32 239

原创 android studio 导入本地外部项目或库

 应用程序 / App1 / build.gradle settings.gradle 图书馆 / library1 / build.grade settings.gradle library2 / build.grade settings.gradle library3 / build.grade ...

2018-09-18 13:52:06 2540

原创 swig 之 go 语言调用c,多参数返回

由于任务的原因,有一个项目需要用go语言调用c代码。之前有接触过swig,因此直接上官网去swig,果不其然,它是支持go语言的,二话不说,直接搞起。首先,如果您不熟悉swig,可以自行百度。然后,本人也是不熟悉go语言,只为了能在go语言顺利调用c代码,因此才考虑用swig。不过,我也有几个考虑的,第一,我有java调用c代码的经验(jni),我知道调用c代码,最关键的内存的回收要处理好,不...

2018-08-23 14:25:33 894

转载 编译原理之词法分析、语法分析、语义分析

词法分析(Lexical analysis或Scanning)和词法分析程序(Lexical analyzer或Scanner)   词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。语法分析(Syntax

2017-08-16 08:58:32 24494

转载 c语言的__FILE__、__LINE__和#line

C语言中的__FILE__用以指示本行语句所在源文件的文件名,举例如下(test.c):#include int main(){printf("%s\n",__FILE__);}在gcc编译生成a.out,执行后输出结果为:test.c在windows的vc6.0下编译执行结果为:c:\documents and settings\administr

2017-08-15 23:30:32 275

转载 DH密钥交换和ECDH原理

下面我们以Alice和Bob为例叙述Diffie-Hellman密钥交换的原理。1,Diffie-Hellman交换过程中涉及到的所有参与者定义一个组,在这个组中定义一个大质数p,底数g。2,Diffie-Hellman密钥交换是一个两部分的过程,Alice和Bob都需要一个私有的数字a,b。下面是DH交换的过程图:本图片来自wiki下面我们进行一个

2017-08-15 22:39:43 2670

原创 c++ 多值返回,指针使用

一般来说,如果一个函数需要返回多个参数,可以采用以下两种方法:第一种方法是将返回值作为写参数。第二种方法是定义一个结构,返回指向该结构的指针。下面的一个例子是指针使用的一个例子。change1 是值传递,不能作为返回值使用。int change1(char* name){    name=”alter”;    return 1;}i

2017-08-10 15:36:35 809

转载 c++ const理解

看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设

2017-08-09 17:07:13 1253

原创 C++中值传递、指针传递、引用传递的总结

1. 值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。void swap(int a,int b){     int temp;     temp=a;     a=b;     b=temp;    

2017-08-09 15:06:32 185

原创 C++ const用法

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。1.const 修饰成员变量  1 #include 2 using namespace std; 3 int main(){ 4 int a1=3; ///non-co

2017-08-09 14:52:35 181

转载 c/c++中define用法详解及代码示例

c++中define用法define在c++语言中用法比较多,这里对其进行整理。1.无参宏定义无参宏的宏名后不带参数。 其定义的一般形式为:#define 标识符 字符串11其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。 例如:

2017-08-02 13:38:14 451

转载 C++项目中的extern "C" {}

引言在用C++的项目源码中,经常会不可避免的会看到下面的代码:123456789#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}

2017-08-02 10:03:25 244

转载 Android CMake轻松实现基于OpenSSL的HmacSHA1签名

最近有这么一个需求,要对接口进行签名验证以防止被刷。开始想到了在Java中实现HmacSHA1签名,但由于Java代码较容易反编译直接获取秘钥,而否定了这个方案。为了解决这个问题,把实现签名的逻辑代码用C/C++来编写,编译成xxx.so库,大大提高了反编译的门槛,从而降低了被反编译的风险。在C/C++中要实现HmacSHA1签名,只有依赖一个很出名的C语言中常用的加解密库OpenSSL。什么

2017-07-31 15:16:48 628

原创 android ndk error :undefined reference to.

在用AS的NDK编译c时,添加了一个C的头文件和.c文件,在调用的时候,一直出现undefined reference to 。。。。查看代码之后,发现一点问题都没有,就是一直编译不过。也在C的头文件加入了:#ifdef __cplusplusextern "C" {#endif// my code#ifdef __cplusplus}#endif

2017-07-27 11:07:06 3907 1

转载 android解析XML文件

一、基本介绍对XML解析有SAX和DOM等多种方式,Android中极力推荐xmlpull方式解析xml。xmlpull不仅可用在android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar。 jar包下载网址http://www.xmlpull.org

2017-07-25 19:26:50 324 1

原创 android library 编译ndk文件 编译器的问题

最近在Android studio中进行开发。创建了一个APP 和一个lib。其中lib进行了ndk开发。要问为什么,就希望把lib做成share库。但是遇到了问题,在进行sm3算法实现的时候(c代码)发现lib库中的位移操作有问题。百度里面是这么说的:C语言里的左移和右移运算符先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用int

2017-07-21 15:50:54 475 2

转载 记录Android dnk 文档

https://developer.android.com/studio/projects/add-native-code.html#create-cmake-scriptndk  基础教程https://developer.android.com/ndk/guides/cmake.html#variablescmake 参数配置文档ht

2017-07-21 15:26:11 263

原创 android studio 导入共享库,本地外部库

在setting.gradle include 'securitylib'project(':securitylib').projectDir = new File(settingsDir,'../A/securitylib')include 'te'project(':te').projectDir = new File(settingsDir,'../A/app')

2017-07-19 20:44:44 972

原创 JNI 字符串处理

访问字符串 jstring 2 char *jstring类型是指向JVM内部的一个字符串,和C风格的字符串类型char*不同,所以在JNI中不能通把jstring当作普通C字符串一样来使用,必须使用合适的JNI函数来访问JVM内部的字符串数据结构。GetStringUTFChars(env, j_str, &isCopy) 参数说明:env:JNIEnv函数表指针

2017-07-12 11:07:03 320

转载 Android APK加固完善篇

作者:http://blog.csdn.net/jiangwei0910410003/article/details/51557135一、前言时隔半年,困扰的问题始终是需要解决的,之前也算是没时间弄,今天因为有人在此提起这个问题,那么就不能不解决了,这里写一篇文章记录一下吧。那么是什么问题呢?就是关于之前的一个话题:Android中apk加固技术实现关于

2017-07-05 11:27:33 4221 3

原创 android studio 引入so使用

第一步:把so库放到主module的libs/下的对应CPU架构目录中,比如libs/armeabi中。主module的build.gradle文件里面,android标签里添加:sourceSets { main { jniLibs.srcDirs = ['libs'] }}编译之后就会包含相应的lib第二步:创建相应的包名

2017-07-03 15:41:10 271

转载 CMakeLists.txt的写法

参考:http://blog.csdn.net/cust_hf/article/category/345853CMakeListserv.txt的写法(1):要求CMake根据指定的源文件生成可执行文件Demo1:add_executable(hello main.cpp)    这将从main.cpp源码文件创建一个叫“hello”(Windows下叫“h

2017-07-03 10:26:06 307

原创 java sm2实现

SM2 java代码的实现。public class SM2 { //正式参数 public static String[] ecc_param = { "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF", "FFFFFFFEFFFFFFFFF

2017-07-02 14:57:51 9935 2

原创 动态加载so文件

我想对于静态加载 so 库文件,大家都已经很熟悉了,这里就不多说了。在 Android 开发中调用动态库文件(*.so)都是通过 jni 的方式,而静态加载往往是在 apk 或 jar 包中调用so文件时,都要将对应 so 文件打包进 apk 或 jar 包。动态加载的优点静态加载,不灵活,apk 包有可能大。所以采用动态加载 so 库文件,有以下几点好处:灵活,so

2017-07-02 14:53:03 1041

转载 常见的Android SO加壳(加密)思路

常见的Android SO加壳(加密)思路    1.1 破坏Elf Header    将Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize字段处理,变为无效值。由于在链接过程中,这些字段是无用的,所以可以随意修改,这会导致ida打不开这个so文件。    1.2 删除Section Header

2017-07-02 09:44:57 1572 1

转载 Android so文件的简单加密

这篇文章主要内容是对于so文件进行简单的加密工作,针对Ida等静态分析工具的分析,一旦开始动态调试就应该很容易就可以dump出内存,直接修复了。主要是两种思路,对文件中指定的section加密,然后在运行时由.initarray进行解密;对指定的函数进行加密,在运行时由.initarray进行解密。两种不同的方法说到底也就是不同的View而已。①基于链接

2017-06-29 20:46:31 1972

转载 Android APK加壳技术方案【1】

本文章由Jack_Jia编写,转载请注明出处。  文章链接:http://blog.csdn.net/jiazhijun/article/details/8678399作者:Jack_Jia    邮箱: [email protected]一、什么是加壳?       加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。大多数

2017-06-29 11:08:49 434

转载 Dex文件结构

文件头(File Header)Dex文件头主要包括校验和以及其他结构的偏移地址和长度信息。字段名称偏移值长度描述magic0x08'Magic'值,即魔数字段,格式如”dex/n035/0”,其中的035表示结构的版本。checksum0x84校验码。

2017-06-29 11:05:25 231

原创 jni 验证apk签名

char* RELEASE_SIGN = "your release sign";JNIEXPORT jboolean JNICALL Java_edu_scnu_jsj_androidsecurity_jnis_JUtil_verifySign (JNIEnv *env, jobject, jobject contextObject, jint signHashCod

2017-06-29 10:35:03 463

原创 jni 函数签名规则

类描述符    类描述符是类的完整名称(包名+类名),将原来的 . 分隔符换成 / 分隔符。           例如:在java代码中的java.lang.String类的类描述符就是java/lang/String       其实,在实践中,我发现可以直接用该类型的域描述符取代,也是可以成功的。              例如:    

2017-06-29 10:30:10 365

原创 jni 调用java代码

1.创建java对象首先在java端自定义一个Person类如下Java代码  package com.example;    public class Person {            public String name;            public int age;            public Pers

2017-06-29 10:26:53 244

转载 androidstudio ndk 配置

使用 Android studio,你可以将 C 和 C++ 代码编译成 native library,然后打包到你的 APK 中。你的 Java 代码可以通过 Java Native Interface(JNI)调用 native library 库中的方法。如果你想了解更多关于如何使用 JNI,请参阅 JNI tips for Android。Android Studio 默认使用 C

2017-06-29 10:21:09 200

转载 树莓派3用create_ap变身无线AP

树莓派3用create_ap变身无线AP1.git clone https://github.com/oblique/create_ap.git2.cd create_ap3.sudo make install就这样安装好了4.接下来安装依赖库sudo apt-get install util-linux procps hostapd iproute2 iw hav

2017-03-27 14:26:26 6683 2

原创 Django Python 获取请求头信息Content-Range

request请求头信息的键会加上HTTP_转换成大写存到request.META中因此你只需要content_range = request.META['HTTP_CONTENT_RANGE']这样就可以获取到Content-Range的信息。django官网的解释:A standard Python dictionary containing all a

2017-03-07 15:33:30 6168

原创 编译原理作业,一介逻辑公式实例化

FirstOrderFormula概述​ 输入一个一阶闭公式集,以这个公式集中出现的常量的集合为论域 ,将这个一阶公式集转化为和它等价的命题公式集。​ 1. 输入的公式集用文本保存。设计一个语言可以表述上述的一阶公式集,给出这个语言的词法和语法。​ 2. 对输入的文件进行语法分析:​ 定义相应的数据结构保持这个这个公式集和其中出现的常量;​ 定义相应

2017-01-13 17:42:40 563

windows下Android,ndk编译C文件脚本

windows下Android,ndk编译C文件脚本,完整说明和使用,只支持cmake方式。

2017-12-18

MPI与OpenMP并行程序设

MPI与OpenMP并行程序设,c语言,并行计算入门书籍。全书。

2017-12-18

SpringMvc 简单例子

SpringMvc 简单例子,入门级教程,你值得拥有。容易上手。

2017-12-18

一介逻辑公式实例化

一介逻辑公式实例化

2017-07-02

android NativeMethodHook

NativeMethodHook

2017-07-02

sm2 java Android实现

sm2 java 实现

2017-07-02

Linux eoip demo

Linux eoip

2017-07-02

微信语音聊天demo

仿真了微信的聊天语音实现,和播放语音的功能,是个简单的单机版!

2015-07-27

android发短信功能实现

android下实现群发短信功能,大家可以参考下!

2015-02-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除