自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 跨考计算机者艰难的2019自白

  先自我介绍一下,我是一个计算机专业研二的学生,方向是网络安全,目前在momenta做自动驾驶算法集成,一个普通的不能再普通的普通人。因为本科是管理学的,因此虽然已经研二了,基础却比很多本科生还要差。按照学校的规定,研二需要找一份长时间的实习并完成实习论文,于是2019年对我来说是人生中非常重要的一年,这一年经历了很多很多的挫折,经历了找实习、分手、放弃爱好方向等等。从一个学生转为一个worke...

2020-01-21 21:35:08 3655 5

转载 两种方式实现DLL导出函数之dllexport与def文件导出

背景我们开发DLL的时候,大部分都会导出函数。对于导出函数,常用的有两种方式,一种是使用 dllexport 关键字导出,另一种是使用 .def 文件导出。我个人比较喜欢用后一种方式导出函数,因为用起来比较省心、方便。现在,我就把这部分知识整理成文档,分享给大家。实现过程dllexport关键字方法这种方法就是在函数声明中加上 __declspec(dllexport) 关键字,同时也要加上 extern “C” 这个前缀,加上extern “C”后,会指示编译器这部分代码按C语言的进行编译,而不

2021-03-19 18:23:20 2887

转载 __stdcall详解

_cdecl(1). 是C Declaration的缩写,表示C语言默认的函数调用方法,实际上也是C++的默认的函数调用方法。(2). 所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。具体所示:调用方的函数调用->被调用函数的执行->被调用函数的结果返回->调用方清除调整堆栈。(3). 被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。总的来说函数的参数个数可变的(就像printf函数一样),因...

2021-03-19 16:29:00 10734

转载 几种常见的设计模式(含C++代码)

本文部分转载于https://blog.csdn.net/hechao3225/article/details/71366058本文介绍几种常用的设计模式并给出C++实现。1.单例模式作用:保证一个类只有一个实例,并提供一个访问它的全局访问点,使得系统中只有唯一的一个对象实例。应用:常用于管理资源,如日志、线程池实现要点:在类中,要构造一个实例,就必须调用类的构造函数,并且为了保证全局...

2020-04-24 16:49:23 590

原创 腾讯客户端安全/web开发实习面经

今天莫名其妙收到了腾讯的面试邀请,岗位是客户端安全,并且当前下午1点多发的邮件,晚上就面试,连个电话都没,面试官人非常好,一面面了一个小时,结果还不知道,下面是面试记录:1.介绍了下面试官的team,问时间上有没有冲突。2.简单介绍一下自己。3.介绍一下自己擅长的方向与自己的成绩。4.c++较c的优势(面向对象的优势)5.c++虚函数知道吗?虚函数指针知道吗?纯虚函数知道吗?6.虚函数...

2020-03-09 20:49:28 1544 1

原创 简单搭建个人博客:在云服务器上安装hexo与apache部署模板

先安装nodejs/npm,若已安装跳过sudo apt-get update#安装对应版本的,替换12即可curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -sudo apt-get install -y nodejs安装hexonpm install hexo-cli -ghexo init blogc...

2020-03-05 21:54:15 1463

原创 g++编译时链接指定路径下的指定库

g++ test.cpp -l$lib \ -L$PATH \ -I$include \ -Wl,-rpath=$rpath 如上 -l后跟so名称,-L跟so路径,-I跟头文件路径,最后的Wl,-rpath=跟so依赖的so路径,即规定递归查找的路径。...

2020-03-03 13:57:28 4966

原创 git撤销commits

git reset --hard HEAD^ #撤销且本地修改回滚git reset --soft HEAD^ #撤销且本地保存修改

2020-02-28 16:25:04 194

原创 git建立分支时提示fatal: cannot lock ref 'refs/heads/xxx': 'refs/heads/xxx' exists;

原因是由于建立分支的名字出错。如我使用:git checkout -b yhj/os而远端已经存在名为yhj的分支,就会报此类错误。原因是因为git建立分支时会在’refs/head下按路径建立文件,yhj分支存在的话,就是存在了名为yhj的文件。而我们使用的这条命令会建立一个名为yhj的文件夹,并在文件夹下建立一个名为os的文件,因此发生了冲突而报错。...

2020-02-26 15:20:16 21868 3

原创 c++精准测试代码详细时间,并指定度量衡(纳秒、微秒、毫秒等)

auto start_ = std::chrono::high_resolution_clock::now();/*some code*/auto end_ = std::chrono::high_resolution_clock::now();fprintf(stdin, %s last<%" PRIu64 ">\n", "some code ", ...

2020-02-24 19:15:46 812 2

原创 linux下查看文件夹/文件大小/情况方法汇总

ls -l命令ls -l 命令可以显示单个文件的大小与情况,因为使用的较多,一般可以简写成ll,不过在原始的linux上不支持使用ll的。如果你的系统不支持使用ll,可以上网查查看怎么将ls -l换成lldf -h命令df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计,一般都使用df -h来显示,-h参数会将结果单位改为M/G/T这种人可以阅读的形式。du -h命令du命...

2020-02-17 21:28:37 337

原创 深度学习模型的计算量评估

推荐一个网站,可以十分方便的评估计算量,将prototxt文件复制进入即可:https://dgschwend.github.io/netscope/#/editor如有需要也可以自己写代码,可参考:https://blog.csdn.net/minstyrain/article/details/80348123与https://github.com/sovrasov/flops-count...

2020-01-21 14:04:50 971

原创 MACC与TOPS(FLOPS)互相换算

最近在做深度学习模型在嵌入式设备上的速率评估,现阶段一般计算深度模型的计算力的单位一般是MACC(Multiply–accumulate),一般评估嵌入式设备的单位是TOPS(Tera Operations Per Second),中文网站很少有介绍两者的关系。在查阅资料后基本可确定是tops=TMACC×2的关系。具体可看:https://www.nxp.com/files-static/t...

2020-01-21 14:01:58 6023 4

原创 apache部署网站后无法显示样式和图片问题

原因是因为目录权限问题,apache默认的路径是/var/www,访问权限为root,需要chmod才可.可用一下几种方式解决:修改apache目录权限修改apache默认路径直接暴力修改sudo chmod 777 -R /var/www...

2019-12-26 14:17:11 2604

原创 ubuntuProj.4库的编译及使用

git clone https://github.com/OSGeo/proj.4.gitmkdir -p build &&cd build #进入proj.4工程目录后,创建一个构建目录,并进入# 使用cmake生成Makefile,指定安装路径和生成库类型为静态库cmake -DCMAKE_INSTALL_PREFIX=./install -DBUILD_LIBPR...

2019-11-19 22:02:06 1737 1

原创 密码学(一)代替与替换

最近准备去安全岗实习,因此准备补一下安全方面的基础知识,首要的便是密码学。这个系列是学习过程的笔记,主要来自于MOOC的公开课与《深入浅出密码学》这本书。基本概念信息安全的属性想要满足信息安全,得有以下性质:机密性别人“看不到”或者看不懂认证可以认证对面的身份完整性信息没有被“动过”不可否认性发送方、接收方不可抵赖消息的传输可靠性、可用性、可控性……密码学正是为了满足...

2019-05-15 23:23:51 3956

原创 Rootkit

一、rootkit介绍Rootkit的作用在于“能维持root权限的一套工具”。它的目的是隐藏自己以及恶意程序,达到长期在目的主机存在并收集信息的目的。Rootkit一般和后门等程序结合使用,帮忙隐藏后门的踪迹。通常,攻击者通过远程攻击获得root访问权限(譬如密码猜测、破解、缓冲区溢出、0-day漏洞),然后安装后门,便于之后回访,安装rootkit,隐藏踪迹,收集信息,便于长期回访以及获得...

2019-04-26 00:33:34 944

原创 防火墙(iptables/netfilter)

一、分类我们可以简单的分为三类:1.包过滤防火墙 2.应用层网关代理 3.状态防火墙1.1 包过滤防火墙原理:根据包头部的元素进行判断(源目的端口、源目的地址、协议)优点:简单、快速、易于配置缺点:难以抵挡分片攻击、不支持复杂的协议、不能防止应用层的恶意攻击1.2 应用层网关代理原理:服务器与客户端间有一层代理,客户和服务器之间从不会有真正的连接。应用代理网关防火墙彻底隔断内网与外网...

2019-04-25 21:35:58 768

原创 TCP/UDP协议安全:SYN flooding 与nmap的使用

一、SYN Flooding1.1 简介鼎鼎大名的SYN flooding攻击相信信安爱好者都很熟知。它发生在TCP三次握手之间,攻击者向服务器发送很多的SYN请求而收到SYN+ACK后不恢复ACK从而占用服务器资源使其丧失正常服务能力。若目标机器未开启防护措施(echo 0 > tcp_syncookies),我们使用netwox 76命令就可以发起攻击了:netwox 76 -i...

2019-04-20 01:43:21 1774

原创 ICMP协议安全:基于pcap与row socket的ICMP重定向攻击

一、ICMP协议简介1.1 ICMP定义ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。1.2 报文结构ICMP有...

2019-04-17 21:19:17 1304

原创 基于LKM与netfilter编程的窃取FTP/HTTP的用户名与密码

这篇博客是通过学习郭老师上课的知识,记录下一些理解与总结,并应用知识于实验。类似与学习笔记与实验思考过程记录,详情可访问郭老师的知乎链接:https://zhuanlan.zhihu.com/c_1081549579018608640一、背景与目的1.1 LKM简介LKM,即Linux Kernel Model。LKM是Linux内核为了扩展其功能所使用的可加载内核模块。LKM的优点是动...

2019-04-10 00:00:49 612

原创 解决vim不能使用方向键和退格键问题

在网上看了很多版本,还是下面的方面比较方便安装vim full 版本:$sudo apt-get remove vim-common$sudo apt-get install vim。

2019-04-06 14:51:53 988

原创 hook系统调用(一):爬取MSDN官网上的API调用并改为自己的API(c++正则表达式的应用)

前言:最近为了完成课题,需要写系统API的钩子程序。然而系统API种类繁多,手动调配是不可能的。而只改写一些API来应付课题又不甘心,想起之前读某位大佬的论文,提到了写爬虫程序并改写的思路,遗憾的是并没有代码。今天仿照大佬的思路,自己动手了一遍,遇到了诸多问题,以这篇博客记录之。一、爬取程序首先,我进入了MSDN的网站(https://docs.microsoft.com/zh-cn/wind...

2019-04-02 02:34:45 558

原创 IP协议安全:泪滴攻击与碎片攻击

一、IP协议介绍IP协议是网络中最繁忙的协议。IP协议是一种best efforts协议,不保证可靠性,数据包可能重复、丢失;无连接协议,同一个连接中的多个报文被独立对待。IP协议主要定义了数据传送的基本单位;执行路由功能;主要规定了主机和路由器应该如何处理数据包;在什么情况下产生错误信息;以及什么情况下应该丢弃数据包。先介绍现在普遍使用的IPv4,以下是报头格式:我们可以看到,IP数据报...

2019-03-31 16:34:21 5938 2

原创 实验:从整理上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换

学号:446原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/一、实验目的及原理二、实验平台三、阅读task_struct源码源码来源:http://codelab.shiyanlou.com/xref/linux-3.18.6/include/linux/sched.h#1235;Linux内核通过一个被称为进程描述符的tas...

2019-03-26 04:21:42 264

原创 Linux内核分析实验(二):跟踪分析Linux内核的启动过程

学号末位:446原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/一、实验要求实验:举例跟踪分析Linux内核5.0系统调用处理过程编译内核5.0qemu -kernel linux-5.0.1/arch/x86/boot/bzImage -initrd rootfs.img选择系统调用号后两位与您的学号后两位相同的系统调用进行...

2019-03-19 18:08:54 225

原创 网络安全入门(一)IP欺骗

前言:最近在郭老师的指导下开始学习网络安全,这个分类用于记录学习过程。首先先记录IP欺骗。也就是著名的凯文与下村勉的交战中使用的著名攻击。这篇博客主要用于记录学习笔记,并加上自己的理解,如有不对之处敬请指正。一、攻击原理与攻击背景在这个背景下有三个角色,分别是:攻击者主机、目标机器服务器A、与服务器A有信任关系的第三者服务器B。前两者很好理解,那么第三者是什么呢?为了更方便登录并服务器来对其进...

2019-03-13 23:40:12 1753

原创 Linux内核分析实验(一):基于mykernel的一个简单的时间片轮转多道程序内核代码分析

学号后三位:446 原创作品转载请注明出处https://github.com/mengning/linuxkernel/。1.环境配置由于自己机器下载linux内核太慢,于是便决定在实验楼上进行操作。环境:实验楼+linuxkernel3.94+qemu虚拟机实验楼地址:https://www.shiyanlou.com/courses/195github地址:https://git...

2019-03-12 12:47:20 292

原创 C++ Tips2:处理数据

1.以两个下划线或大写字母和下划线开始的变量不违法,但可能会导致不确定性。单下划线开头用作全局标识符。2.C++提供一种灵活的标准short至少16位int至少与short一样长long至少32位,且至少和int一样从long long 至少64位,且至少和long一样长3.在climits/&lt;limits.h&gt;中包含了一些限制信息,如INT_MAX为最大的int,CH...

2019-03-05 23:12:58 202

原创 C++ Tips1:开始学习c++

前言:由于最近开始准备校招,笔者打算把C++等方面基础知识重新过一遍,并开通了博客记录,主要用于记录学习过程中碰到的一些有意思的点。这个tips系列源于C++ Primer Plus。1.c++对大小写敏感2.想让程序窗口一直打开,直到按任何键,可在return后加cin.get()3.在C++中,括号中使用void与不接受任何参数等效(在C中括号空着意味着对是否接收参数保持沉默)。int...

2019-02-28 23:11:49 114

空空如也

空空如也

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

TA关注的人

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