- 博客(128)
- 资源 (7)
- 收藏
- 关注
原创 双边带抑制载波传输
双边带抑制载波传输(DSB-SC)双边带抑制载波传输(DSB-SC)是通过幅度调制(AM)使得频率关于载波频率对称分布,且将载波电平降低到最低程度(理想情况下完全抑制)的传输方式。在DSB-SC调制中,与AM不同的是,不会传输载波;因此,大部分功率分布在边带,这意味着相同的功率下,DSB-SC比AM能够传输的基带信号能量更高。DSB-SC传输是双边带减幅载波传输的一种特殊情况。它用于无线电数据系统。频谱DSB-SC从根本上说是无载波的调幅,因此减少了功率的浪费,让它的效率达到了50%。这相对于最大
2022-04-01 20:30:37 7821
原创 vs code一键编译运行cmake项目
首先需要安装mingw-w64与cmake组件,如果是ubuntu环境下,这个过程一条命令即可完成,在windows下需要安装包来进行。vs code官网建议使用 msys2 来进行,不建议使用,因为我遇到很多问题,不是cmake问题,要么就是make问题。安装mingw-w64https://sourceforge.net/projects/mingw-w64/files/ 安装的时候如果安装MinGW-W64-install.exe这个文件时候会出现mingw-w64 the file has be
2022-03-20 16:01:57 5490
原创 vs code中的类似${workspaceFolder}的变量的解释
背景介绍Visual Studio Code支持Debugging和Task配置文件中的变量替换,以及一些选择设置。这些变量如 ${workspaceFolder} , ${workspaceFolderBasename}, ${fileWorkspaceFolder}。而且这些变量应用的非常普遍,然而我们一直无法准确知道这些变量在运行中到底表达什么含义,如果能在调试的时候将他们输出打印出来,就会能够更好的配置我们的项目。背景介绍如下图vs code打开路径/home/chenrui/Document
2022-03-16 12:23:42 14985
原创 IDA pro与x64dbg地址对齐
在使用IDA pro静态分析32位和64位程序时候,起始地址都是标准的从00400000、0000000140000000开始,这种基地址也是标准的地址。然而在使用x64dbg的动态调试的时候,它的起始地址竟然不是从0x00400000或0x0000000140000000开始的。这对于使用IDA静态分析然后根据x64dbg动态调试的方式来说,是一个不小的困难。因为IDA pro我分析好了程序结构,x64dbg中直接到这地方的反汇编代码,使用00000001400010FB作为地址是显然不行的。我们
2022-01-10 16:02:45 4676
原创 傅立叶级数到傅立叶变换推导与理解
前言本文记录这几天我所学习的 傅立叶级数 至 傅立叶变换的推导过程,以及阐述在傅立叶变换的过程中,一些参数在数字信号处理过程中所表达的物理意义,帮助自己能够更好的回复。级数与傅立叶级数傅立叶变换离散傅立叶变换简略说快速傅立叶变化、傅立叶变换关系及应用代码演示附件...
2021-12-20 21:38:55 1380
原创 I2C通信与解码笔记
void I2C_Start(void){ I2C_SDA=1; I2C_SCL=1; I2C_SDA=0; I2C_SCL=0;}void I2C_Stop(void){ I2C_SDA=0; I2C_SCL=1; I2C_SDA=1;}
2021-11-18 21:11:10 3914
原创 VB程序窗口的移除
本文以Crackme160中的第二个 Afkayas.1 程序为例子阐述如何找到关键函数与关键跳。工具IDA pro,x32dbg,PEiD查壳使用PEiD,将待检测的程序 Afkayas.1 拖入其中,如下图的红框显示,是一个VB程序,没有壳。查找关键函数call与关键跳根据程序运行的结果看,如果是失败会有一个弹框,可以知道在弹框的附近就是关键call和关键跳的位置。在visual c++的程序中弹框的函数一般类似MessageBox,在VB程序中是rtcMsgBox(如果不知道准确的名称
2021-11-06 10:37:41 402
原创 RC电路一阶线性微分方程
电路中一阶线性微分方程在高等数学中,一阶微分方程求解过程需要先算出齐次的通解,然后再根据初始条件算出特解,计算与推理过程很是复杂。在我们学习电路的时候再遇到这个东西时,会因为之前复杂的求解方式严重打击自信心,加之老师说数学在电路中应用是非常广泛的,对于RC电路中存在这个一阶线性微分方程,已经成为拦路虎。本文将从另一个角度讲解一阶微分方程在电路中的应用,让你感觉到数学在此次的RC电路中,充其量就是个计算方法的引荐或者是一个工具,电路中有一套自己的方法对待这个,而且解法固定,没有套路(态度真诚),只需知道一
2021-10-16 12:23:26 21892 1
原创 51单片机中断笔记
理解中断在软件开发的过程中,比如有一个线程正在执行,突然有个紧急任务执行,那么哪个线程先停一下,然这个紧急任务执行完它才执行。在硬件中,中断也是这种意思,如果有紧急任务,其他的任务先放一放,先干这个紧急任务。中断笔记如下图...
2021-10-13 11:32:08 454
原创 51单片机的定时任务
51单片机定时任务中有两个寄存器理解,TMOD和TCON;掌握了TMOD和TCON功能后,就可以游刃有余的进行定时与计数,同时可以控制定时与计数任务的开与关。TMOD是设置使用什么类型的寄存器,设置多少计数与定时时间TCON寄存器是表示寄存器的开与关,以及什么时候被关掉如下图是51单片机定时与计数使用到的相关寄存器;TMOD与TCON相互配合决定了定时器的模式选择与啥时候开与关闭。其中计算时钟,比如从某个数数到FFFFH这个值时,是要通过Timer 0和Timer 1寄存器来完成的。我们又
2021-10-12 21:56:34 3362
原创 windows软件进行反汇编修复流程
本文以Crackme160为例子,示例文件都在该例子中https://gitee.com/cnhellorui/Crackme160节一前言与总结该节里只需x64dbg即可,windows 7和windows 10,xp都可以。该节中修复掉那个弹框关键做法:找到关键call,找到关键跳。找到关键call的目的是:确定你所看到的那个弹框或者事件,在反汇编代码的哪个位置发生的,那么你知道那个事件在哪里发生的后,你所想要修复的逻辑就在他的附近。幸运汇编语言按行一条一条执行,找到那个关键call后,那个逻
2021-10-11 12:30:44 1322
原创 keil与vs code开发C51单片机
keil编译器是ARM官方提供的单片机开发的程序,对于代码的调试,编译有着很好的支持。然而,蛋疼的是代码编辑环境就像记事本一样,不能进行代码补全提示,不能语法检查,不能对代码引用进行索引。如果有vs code自动补全索引,还有部分语法检查,再加上keil的良好调试与编译功能;c51单片机开发会变得非常高效顺手。如下就是相关的配置步骤,注意vs code的添加h头文件依赖,以及部分诸如sbit,sfr变量的提前定义。keil先创建一个工程,vs code打开创建的工程keil创建完了一个工程后,在操作
2021-10-03 10:49:33 4704 5
原创 Windows环境使用CLion进行Android NDK开发配置
下载软件与系统相关配置下载安装CLion 2021.2.2版本下载安装Android Studio最新版本,如下图进入设置,然后下载最新版本的NDK和CMake进入Android Studio下载的SDK,SDK包含了Android开发的所有套件以及依赖,包含了C++, Java等以来都在这里。下载完成了Android SDK后,Android中的adb一些组件加入操作系统的环境变量,这样的目的是我们可以在命令行使用adb这些组件了。我们在windows系统中的命令行界面敲入adb,就能正常
2021-10-02 20:32:35 4088
原创 数字电路逻辑-或与非的公式
基本定律求反规则: 1‾=0\overline{1} = 01=0; 0‾=1\overline{0} = 10=1常变量规则:0⋅A=00 \cdot A = 00⋅A=0,1⋅A=A1 \cdot A = A1⋅A=A; 1+A=11 + A = 11+A=1,0+A=A0 + A = A0+A=A重叠律:A⋅A=AA \cdot A = AA⋅A=A; A+A=AA + A = AA+A=A互补律:A⋅A‾=0A \cdot \overline{A} = 0A⋅A=0; A+A‾=1A + \
2021-09-25 11:38:51 10578
原创 电路原理-三级管与mos管的理解与应用
理解mosfet管如下图左边nmos管,右边是pmos管。mos管上的黑色是金属氧化物(是绝缘的)。mos管知道这么多就可以了。对于nmos管,如果我们在金属氧化物上加正极电压,那么p型半导体中存在的电子(理解为带负电荷玩意)向金属氧化物的周围靠近。也就形成了如下图的样子。根据上图的表示,相当于在两个N型半导体中又连上了一个N型半导体。如果在两边通上电,那么就像导体一样可以导电工作了。那么我们查看一下nmos管的应用。nmos的使用打开multisim,使用nmos做一个开关,把led小灯点亮
2021-09-23 10:26:46 668
原创 电路原理-电容应用与理解
本文采用multisim仿真,分析二极管,电容,运算放大器以及三极管在电路中所承担的作用,已经通过这些元器件后,电路的电压波形情况。通过这些分析,能够快速理解并掌握这些元器件的作用。...
2021-09-04 12:16:09 1887
原创 记录spark本地开发的历程
本地使用scala开发spark,首先需要安装和配置scala,spark以及hadoop环境。scala安装在scala官网下载,https://www.scala-lang.org/download/ 我选择的是scala 2.13版本,下载完成后,scala配置到系统的path中去,配置方法像jdk那种。spark和hadoop环境安装下载spark的地址:http://spark.apache.org/downloads.html ,入下图所示,我下载是图中的spark-3.0.3-bin-
2021-07-04 23:47:03 502 4
原创 汇编语言中的16进制与2进制快速转换方法
背景目前很少博客说明16进制与2进制直接转换的博客,16,10,2进制它们的相互转换又是在生产实践中用处又非常广泛,且很重要。本文根据16进制与2进制的规律,帮助我们快速的理解掌握2进制、16进制、10进制相互转换的过程。内容16进制,2进制,10进制对照表0001 1 1000 80010 2 1001 90011 3 1010 A 100100 4  
2021-05-25 17:59:45 3558
原创 互联网中热门产品计算的方案
摘要在我们日常生活中,热门推荐是一个很重要的推荐,也是一个推荐系统的起步。不需要详细记录用户的信息,就可以为用户推荐热门的产品。本文从日志打印、到日志分析、最终形成推荐候选集的方面进行阐述,本文的设计热门产品计算的计算瓶颈取决于Java中的Map能存放多少条数据。如下图是计算每个产品的流程图。1 在用户端需要添加日志记录,比如以用户点击为热度指标,那么在用户点击某个产品后,则进行记录,并将日志记录在某个文件内。2 在用户行为信息形成日志后,需要对其对日志聚合分析,形成如下的Map结构性的数据"i
2021-05-18 22:50:36 1129 1
原创 mongodb中的3t客户端的时间延长做法
目前网上大多数是采用如下的代码,将代码拷贝至一个文件内,改成bat文件双击运行,3t客户端可以完成时间的延长。然而我这边使用没有这种效果。@echo offECHO 重置Studio 3T的使用日期......FOR /f "tokens=1,2,* " %%i IN ('reg query "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" ^| find /V "installation" ^| find /V "
2021-03-23 18:04:10 361
原创 mybatis中Mapper接口执行SQL原理概述
mybatis执行sql语句的概述在下面的测试代码中,setUp 方法用于创建 SqlSessionFactory 工厂,该SqlSessionFactory 工厂的用途是创建 SqlSession。 private static SqlSessionFactory sqlSessionFactory; @BeforeAll static void setUp() throws Exception { // create an SqlSessionFactory try (R
2021-01-07 16:51:57 1009
原创 插装动态勾选一些常见自吐算法
常用的加密算法对称加密算法AES,DES,3DES非对称加密算法RSA消息摘要算法md算法家族 md2,md4,md5sha算法家族 SHA-1,SHA-256,SHA-Mac算法家族 HmacMd5,HmacSHA256热插拔动态调试的原理在app的加密中,绝大多数的加密方式都会采用上述的常用加密算法,有时候有的小型APP通过一些加固处理,很难反编译出来,那么对他上面的加密算法进行hook,可以很好的解决这个问题。在某个app运行的过程中,hook到某个加密算法后,将调用这个加密方法
2020-12-22 19:23:20 750
原创 汇编语言笔记
函数序言esp栈顶,ebp栈底位置;入栈add esp, 4出栈sub esp, 4这是在32位机器上运行的,一次性能够压入4个字节的数据入栈(4个字节也就是32位,同理如果是64位机器,可以入栈8个字节数据)理解入栈,时候为什么是栈顶往是加,而不是减少。是因为在机器初期,硬件资源非常稀缺;在起始地址开始位置分配给程序段相关。比如运行一个程序段,然后地址向前加若干字节;此时需要记录一下别的事情,比如记录一块数据,一个函数,等会再用。这时要记录在别处,为了方便可以从地址的后面往前记录。就像做
2020-11-20 12:11:52 533
原创 协同过滤推荐算法的理解
背景本文介绍协同过滤推荐算法在我们项目组的使用方案,作为笔记或者供大家参考的小结。协同过滤推荐算法理解为一个推荐算法,推荐算法一个是基于用户的喜好程度的推荐算法可以简写为UserCF,另一个就是根据商品被喜好程度的推荐算法简称为ItemCF。UserCF介绍UserCF推荐算法其实就是考察某个用户喜好与另一个用户的喜好是否相近,通过跟他臭味相投的人,他臭味相投的人喜欢啥的就推荐给他。A用户喜欢: a, b, c, d, eB用户喜欢:a, b, c, x, fA用户与B用户是一对臭味相投的人,A
2020-10-27 21:47:31 434
原创 使用生产者和消费者算法加速数据处理
应用场景数据库里有1120万条数据需要一个不漏的全部处理,然后将处理后的数据再次保存在数据库中。如果数据量小的话,取出来后挨个处理挨个进行保存即可,此时我们面对的是千万级别的大批量的数据,挨个处理挨个保存这种顺序方法非常耗时,不可行。方法使用此时可以选择一个生产者和消费者思路进行处理,如下图顺序方法和生产者消费者方法的对比。顺序执行的耗时模型处理数据处理数据完成后才可以执行保存数据,耗时是叠加;生产消费方法执行耗时是生产数据和消费数据方法并行的执行状态,消耗时间取决于哪个最后执行完成(此图中生产数
2020-10-17 17:14:13 395
原创 Java的List集合对象插入排序
需求背景,在一个循环里,每次循环出一个对象,将这个对象存放到另一个集合中,且另一个集合需要根据对象的某个属性的大小进行排序。类似如下的集合//RelateCountMatrixEntity对象,属性如下private String xAxis;private String yAxis;private Integer count;private double relateScore;//RelateCountMatrixEntity对象集合List<RelateCountMatrixEn
2020-10-15 22:02:02 3683 1
原创 层序遍历一颗二叉树-Java实现
层序遍历一棵树在工程化的实践中有着广泛的应用,比如我们遍历一个json,如下的json我们看到有两层。首先遍历第一层,遍历完成后再遍历第二层author节点下的内容,遍历html树的时候也会存在这种情况。同时层序遍历提供了一种思想,这种思想与池思想(比如线程池,连接池这种池思想)。{ "product": "fileup跨平台局域网文件分享", "website": "http://fileup.marsdl.com", "author": { "username": "chenrui",
2020-09-22 12:10:10 552
原创 数据分析基础-箱型图分析
异常值分析异常值分析高大上的名字叫离群点分析,其目的就是从一个数据集中找出这个数据集不符合正常事务范畴的数据。有三种方式,简单的观测方法这个靠经验,另外两种分别是:基于正态分布的方式 3σ\sigmaσ 原则分析 与 箱型图分析。箱型图分析3σ\sigmaσ 原则分析离散度分析贡献度分析...
2020-09-19 22:11:32 4657
原创 Java反射理解
在众多的博客中,java反射号称Java框架的灵魂;本文笔记记录,Java反射的理解与Java反射的一些应用。理解Java反射中的Class对象理解Java反射,首先理解java由字符串的代码变成一个执行程序的过程。比如我写了一个 Person.java 字符串的代码文件,进行编译产生 Person.class java的字节码文件。要想使用Person,需要产生一个对象。如上图,通过类加载器ClassLoader,将Person.class文件加载到内存中。在加载到内存中会产生一个对应的Cla
2020-09-14 19:29:45 380
原创 nuxt中将markdown文件转换html并带有高亮提示
在http://fileup.marsdl.com/menu的网站中,每一篇的博客文章是通过markdown编辑后直接保存markdown内容在数据库中。博客内容显示时获取md内容将其转换成带有高亮的html内容。主要思路就是markdown-it将md内容转换成html内容,比如##标题 变成 <h2>标题</h2>,然后highlight.js文件专门对html内容中生成的html标签进行 css 样式渲染使其更加美观。比如<precode> 标签就添加一系列的样
2020-09-01 23:34:11 1510 1
原创 按行读取json文件转成insert的SQL语句
需求有如下很多条json语句的文本,每条json语句在文本中为一行{"categoryId":"12","cityId":"123","cityName":"滁州","countryName":"中国","deleteField":"SUCCESS","currency":"CNY","language":"英语","languageCode":"en_US","rangeName":"东亚"}{"categoryId":"12","cityId":"1","cityName":"明光","count
2020-07-10 18:28:28 2831
原创 visual studio开发nodejs的c++ addon
下载nodejs源码进行编译https://github.com/nodejs/node/releases 下载一个stable版的nodejs源码包到指定系统位置,然后解压,加压后如下图(部分内容)。在解压的位置进行编译执行 vcbuild.bat debug nosign x86 (时间有点长,根据电脑配置有关)配置系统环境变量visual studio项目中添加nodejs c++ addon项目新建一个visual studio的visual c++的console项目使用vis
2020-06-23 23:32:55 1471
原创 vue的nuxt与electron学习笔记
该文章纯属笔记,写的非常凌乱,请谅解Nuxt.js是vue项目中一个能够搜索引擎优化的框架,原来的vue项目的前后端分离,均是通过发送ajax请求然后获取json异步方式。这种方式不利于搜索引擎优化,因为搜索引擎爬虫爬到后是空壳子。nuxt.js解决这一难点。安装vue在windows环境中安装nodejs,再安装npm。基本环境安装完成后,设置vue镜像地址,国外镜像很慢。设置淘宝镜像地址npm config set registry https://registry.npm.taobao..
2020-06-07 23:34:56 1600
原创 热插拔测试框架的安装笔记
初步使用frida hook的python和Js代码https://frida.re/docs/examples/android/frida hook与xposed类似,都是用于hook安卓系统对应的进程。配置需要Hook的机器建议使用模拟器 https://www.yeshen.com/ ,安装夜神模拟器中的android 7。低版本安卓系统会导致有些应用运行不了。不建议root手机开始,root手机流程复杂会耽误很多时间,在后续hook能力提高很多后再使用真正的硬件设备。安装frida配
2020-05-17 15:04:55 562
IEEE格式的latex中文模板.tex
2021-12-31
15天看懂汽车电路图_于海东_化学工业_2017.8.pdf
2021-12-31
定时中断与按键检测.rar
2021-11-13
单片机原理应用与实战
2018-08-20
中科大834 822研究生入学考试初试真题
2018-08-14
数据结构树实现源码-高一凡版本
2018-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人