- 博客(195)
- 资源 (10)
- 收藏
- 关注
转载 思考
人总会慢慢长大,年龄到了,再单纯的人,也会变得成熟起来。下面是我看到的、想到的、或偶有所感的记录,有的甚至是自己还没有答案的记录,希望有人能给我以答案。一家之言,若无帮助,就当废话。一 体会1.1 开放思维所谓开放思维,即不要给自己的思想设置任何边界,佛家所说的不要有我执,人心像个容器,只有开放了,才能对一个新的事物或思想进行接触了解,才能进一步吸收转换为自己的东西,单纯的第一直觉的拒绝,也是拒绝...
2024-08-25 10:02:50 39
原创 Linux下AF-PACKET的V3版本
一 前言上一篇介绍了通过AF-PACKET的V1 版本进行网络包的捕获,比较新的Linux内核是支持V3版本的,相对于前两个版本(V2和V1比较相似,V2版本的时间精度从微秒提升到纳秒。)V3版本,具有以下的提升:CPU使用率降低约15-20%数据包捕获率提高约20%数据包的密度提升2倍(不知道什么意思, 如 ~2x increase in packet density)端口聚合分析非静态数据帧大...
2024-07-14 12:29:38 798
原创 Linux下原始的AF_PACKET流量捕获方法
一 前言好久没写文章了,这个写文章的事情还是要勤快呀,不然极其容易懈怠。给自己找的理由是,一忙,二是没有好的题目去写,也没有遇到值得分享的主题,这次发现自己对流量捕获的一些内容还有理解模糊的地方,有些只是知道,却缺乏实践、所以有了这篇。二 流量捕获简介所谓流量捕获,对网络中的网络流量进行捕获,然后进行分析,用于网络监控、协议审计、威胁检测等多个领域。流量捕获作为数据源头,注重的是是否足够灵活,比如...
2024-07-06 10:30:37 1228
原创 Centos下日志管理
一前言对于程序员来说,排查问题最重要的方式之一就是记录日志和查看日志了。日志就像系统的化验单,程序员就是医生,根据化验单,对症下药;特别是在系统在客户现场出现问题的时候,现场维护同事咨询问题的时候,提供一份详细的"化验单" 就非常重要。所以维护做的好一点的,一般都有日志分析系统,或在出现故障时候,可以从系统中导出关键日志,发送给程序员,完整的日志,便于快速对系统进行把脉、开出药方。相对我们对自己开...
2024-03-24 17:40:07 1243 1
原创 centos7.4下升级最新的ssh
一 安装telnet服务器安装telnet服务器目的,防止我们升级失败的时候,可以通过telnet登录,而不至于上机房。由于我们是临时启动,所以只要简单的使用,不要通过xinetd来进行守护。命令如下:yum-yinstalltelnettelnet-serversystemctlenabletelnet.socket--nowsystemctlstarttelnet.so...
2024-03-03 16:31:04 325
原创 TeleDb 国产数据库编译安装
一 环境准备1.1 创建用户、用户组groupaddteledbuseraddteledb-gteledb1.2 创建相关目录mkdir-p/opt/teledb/data1.3 安装boostcd/opt/tarxzfboost_1_59_0.tar.gzcdboost_1_59_0./bootstrap.sh./b2install1.4 安装依赖rpmcd/o...
2024-02-24 12:36:13 603 1
原创 Java生成word文档
一 前言Java编程生成word文档这种操作一般是常规操作比较常见,主要采用Apache的POI Word 这个库操作的比较多,还有的用Spire.Doc,但是这个库有些稍微难点的功能要收费,看了下费用还不低,周末朋友问起是否有用java操作word加上下标的经验,我是没有的,不过刚好借机研究下。本文主要聊下POI,毕竟是免费的,更值得研究。word 格式说明和POI支持情况:HWPF: MS...
2023-11-04 13:31:27 271
原创 GPT会统治人类吗
随着它学习的越来越多内容,不光有问题,据说还有视频、录音、图片等,它会越来越像个各方面都在行的专家,可以在我们冥思苦想没有灵感的时候,给我们以启示,这些知识都是存在的,而我们却不知道竟然可以如此组合,它不能从无到有创建出一个独立的分支,却可以通过各种组合将现有的知识利用达到极致,这种组合何尝不是一种创新,利用它的能力,未来人类在交叉学科上,在知识本质的理解上,语言规律的摸索上,给人们更多的启迪。这说明,这些单词或句子,在一个高维度的空间上,是存在一定的关系的,这个关系就是我们平时所说的所谓的知识。
2023-09-16 11:38:37 877
原创 再想一想GPT
一 前言花了大概两天时间看完《这就是ChatGPT》,触动还是挺大的,让我静下来,认真地想一想,是否真正理解了ChatGPT,又能给我们以什么样的启发。二 思考在工作和生活中,使用ChatGPT或文心一言,逐渐形成了习惯,总想听听它们的意见。无论是小学作文还是小的编程测试例子,大部分情况下还是能够给我一个比较靠谱的意见,而且是个“知错就改”的AI,对于它的回答不满意,多换几个提示词总能给我想要的效...
2023-09-16 11:38:33 627
转载 不用写代码模拟Restful服务器
1 前言很久没有写文章了,不管什么原因,总觉得心里还是觉得有点焦虑,不看看书写点东西就有莫名的焦虑,仿佛只有忙起来才能忘记焦虑。虽然我也知道更重要的是思考方向,但是就像走路,不出发随着时间的流逝,总觉得有种焦虑感,总觉得一直走在路上,才有踏实的充实感,不知道你们是不是这种感觉,还是只是我的个人感觉。2 不用写代码的服务器这篇文章不是什么高深的底层知识,只是介绍个工具。原因我在写后端代码的时候,代码...
2023-07-22 16:50:03 188
原创 不写代码开启Restful服务
虽然我也知道更重要的是思考方向,但是就像走路,不出发随着时间的流逝,总觉得有种焦虑感,总觉得一直走在路上,才有踏实的充实感,不知道你们是不是这种感觉,还是只是我的个人感觉。自己也懒得去写了就在github上找了下,发现一款好用的模拟Restful服务器,尝试下,非常好用,还支持定制。json-server 是用js开发的,作为后端开发者可能对js开发的应用有点排斥,不过尝试了就知道,其实也挺好用,现在我甚至觉得用nodejs开发,其实是件很爽的事情,代码写的像python,简单库还挺丰富的。
2023-07-22 16:34:43 370
原创 自动化漏洞猎人代码分析
0x00 前言安全人员可以扫描,网络上悬赏网站等的漏洞,如果能够发现其存在着安全漏洞,则可以通过提交漏洞的方式来获得一定的赏金,国外的这类悬赏的网站比较多,比如hackone,这上面列出了大量的资产信息,白帽子们可以分析这些资产,发现漏洞来获取赏金。hackone上截至到2020年6月,已经有六名白帽子获得了百万奖金。0x01 大概了解hackone上的资产个数是非常多的,如果人工分析起来,不光累...
2023-06-24 15:55:11 392
原创 可以顺畅使用不输Chatgpt的AI
虽然chatgpt不错,但是如果在咱们国家,想使用起来还是有一定的门槛的,又要科学上网,又要申请账号,申请账号还要申请虚拟手机号接收验证码,难道就没有适合普通人使用的AI了吗,直到我发现了Cluade。虽然答案有部分是错误的,比如ChatGPT4 并不是一个开源项目,不过在交互的时候我让它用表格展示,直接给我markdown格式的对比说明,挺厉害的。目前发现这个AI在问题回答上,路线交互上等一系列问题上,还是不错,完全可以作为日常工作生活的助手,趁着现在注册还是开放的,赶紧来注册体验吧。
2023-04-16 16:26:06 6093 1
原创 利用Radix tree基树进行IP地址的匹配
一 基树概念Radix tree(也称为基树trie或紧凑trie)是一种空间优化的trie数据结构,用于存储关联数组,其中键是字符序列(例如,字符串或字节数组)。在基数树中,树中的每个节点表示一个或多个键的公共前缀,节点之间的边缘表示该前缀的扩展。由于它们的前缀共享,基数树可能比常规尝试更节省空间,特别是对于具有许多键共享公共前缀的数据集。注意:有的地方区分了Radix tree和Trie Tr...
2023-02-12 10:01:44 1233
原创 实现自己的数据库四
一前言上一篇已经说明了B+树的一些原理,也讲到,我们目前采用的持久化数据的方式,而且我们是单独的插入数据,没有任何元数据信息,虽然插入的速度很快,因为是采用追加的方式。但是这种方式插入速度很快,像上次所说,查询和删除的速度会很慢。数据结构性能对比图我们以前用的就是非排序数组行,保存的是数据,没有其他信息。插入性能最好,但是删除和查找时间复杂度为O(n),排序数组查找很快,可以采用二分法查找,时间复...
2023-01-30 22:27:58 423
原创 实现自己的数据库三
一 前言上篇实现了数据库的持久化,就是一个质的飞跃,虽然代码不复杂,但是对没有这方面经验者来说,还是意思的,下一步就是要完成另外一个飞跃,将存储的数据结构采用B+树的形式来保存。在改造之前,还有些准备工作,一是将代码改动下,引入游标这个概念,二是对B+树的结构和原理再做一次梳理,然后才能进入代码开发阶段。二 游标cursor游标这个概念,再这里面可以抽象认为为指向一行的指针,通过这个指针我们可以做...
2023-01-28 13:08:55 481
原创 实现自己的数据库二
一 前言上次数据库支持了一个测试表的插入和查询,但是数据全部保存到磁盘中的,如果程序重启后,数据都会全部丢了,所以需要持久化到磁盘上,像sqlite一样,简单的将数据库的数据保存到一个磁盘文件上。二 实现原理image.png我们上次已经将数据库的数据持久化到一块4kB的内存块上,可以方便的将这块内存持久化到文件上即可,具体实现步骤:我们定义一个抽象结构Pager,这是对文件结构和页面的综合抽象。...
2023-01-26 21:43:05 765
原创 实现自己的数据库一
一 前言从上篇原创文章到现在又是新的一年,今天是2023年的大年初三,先在这里祝各位亲爱的老铁们新年快乐,身体健康,在新的一年里更帅气、更漂亮,都能完成自己的小目标。一直以来,我对数据存储还是比较感兴趣的,计算机从大的抽象层次来说,只干了三件事情,存入数据,计算,输出数据。所以数据的存储和搜索可以说是占据计算机的大半功能了。在工作中,也自己设计过一些存储和索引,不过是简单的哈希表的结构存储,对以B...
2023-01-25 17:53:29 1555 2
原创 一款新兴的操作pcap的神器
一 前言有机会接触到这款软件,还是同事的一个图,图介绍了开源项目Zed和基于Zed做的一款全流量安全产品Brim。整个产品其实是不少开源项目的一个小集成,只所以感兴趣,除了brim在github有1.5k个star的原因外,更吸引我的是它使用了一种新的数据结构,超结构化的数据模型,通过这种结构可以集数据的压缩、索引、数据的分析于一体,而不用数据存储的各类数据库、NoSQL,简单方便。二 Zed和它...
2023-01-07 22:54:02 1298
原创 全网第三详细tshark使用帮助
一 前言tshark作为wireshark的命令行版本,功能非常强大,可以抓包,数据包分析、提取文件、提取分析后的数据还支持各种格式,可以说一把流量分析的瑞士军刀,如果在低流量的场景,包装下tshark命令,就可以做个功能比较丰富的分析系统了,结合检测规则,一个简单点的IDS系统就出来了。二 核心功能2.1 抓包如同tcpdump一样,tshark也可以通过命令行方式进行流量捕获,功能一点也不弱。...
2022-12-11 00:00:10 7807
原创 Elasticsearch好用查询插件分享
以前我常用的ES查询工具是Head,作为插件形式在浏览器中运行,挺方便的,后来发现head不太好用,比如在数据浏览的时候,不小心就点击了两个索引,背景色设置的还不够明显,比较容易看错数据的。于是想找个更好用的工具,以前用过cerebro 觉得界面够酷,但是我觉得cerbro作为es的插件运行的挺麻烦,我想找个类似head这种方便的浏览器插件。一 Elasticvue这个作为一个浏览器插件运行,类似...
2022-12-03 11:13:46 3017
原创 Linux内核中的一个list实现的理解
一 C中宏的应用如果我们写个排序方法, 用c语言实现的话,由于没有通用的类型,也没有c++的模板,没有java的泛化,这样不同的数据类型,我们就要实现多个排序方法,比如实现个int的排序方法,实现double类型的排序方法,但是这样重复的代码很多,其实可以用宏来实现。同样有个需求要我们写个list,如果里面保存的数据类型不同,就要实现多个,这种实现方法会有太多代码重复,用宏实现是个不错的思路,用宏...
2022-09-30 21:12:45 465
原创 代码格式化工具AStyle简要说明
一 安装1.1 windows下安装astyle是代码格式化工具,可以配合vs code的插件进行代码的方便格式化,也可以作为命令行工具单独运行:下载地址:https://sourceforge.net/projects/astyle/files/1.2 vs插件安装配置格式化格式:/*AStyle*/"astyle.additional_languages":["c",...
2022-09-23 20:22:09 1206
原创 静态检查工具scan-buid简要帮助
一 安装说明scan-build是clang源码中的静态代码分析工具,安装的时候需要注意和clang的版本要保持一致才可以,网上的有一个python版本,但是我安装后无法使用;1.1 linux下安装#centos 下安装yum -y install clang-analyzer#或通过dnf安装sudo dnf -y install clang-analyzer二 使用说明2.1 lin...
2022-09-22 20:23:27 922
原创 从select引起的bug聊聊多路复用二 poll
一 前言select最多支持1024个连接,且连接的文件描述符的最大不能超过1024个,如果程序打开了很多文件,或用了2MB这种大页内存,可能会导致打开的文件超过1024,从而使unix socket 产生莫名其妙的问题,poll这套IO多路复用机制和select的用法很像,采用链表而不是采用位图的方式,突破了1024个套接字的限制,本文就是用poll重新实现前篇的功能。二 poll2.1 pol...
2022-09-18 08:17:53 168
原创 从select引起的bug聊聊多路复用一
一 前言首先祝大家双节过的开心,平安喜乐!很久没写文章了,主要自己还在沉淀,学习类的分享总觉得为了分享而分享,多几天可能自己都记不清细节了,所以一直没有再去写,这次遇到一个比较有意思的bug,多路复用的一个bug,这个领域那,虽然自己也学习过,但是一直也没写过代码练习,就这个机会就一并练习下,可能对高手来说这是稀松平常的问题,却耗费了我们一天左右的时间进行问题的排查。二 问题描述和排查步骤我们有个...
2022-09-11 21:08:44 466
原创 内存泄漏还可以这样查
一 前言对于C或C++程序员来说,面对的bug很大部分是内存操作问题,这其中比较令人头疼的就是内存泄漏了,虽然我们有valgrind 和AScan等内存问题的检测工具,但是valgrind每次输出一大堆,AScan有时候看输出结果看的是云里雾里的。再说,谁会嫌弃工具箱里面多个工具那。二 内存泄漏的一般检查2.1 基本准备内存泄漏问题的检查步骤,对于做过c或c++同学都比...
2022-07-31 07:00:59 4124
原创 隐藏crontab和键盘记录密码
一 前言前几天朋友发一个文章,是关于crontab的隐藏的,涨姿势了,所以就学习下,觉得还蛮实用的,于是有了这篇文章。二 crontab隐藏2.1 从一条命令说起以下命令比较奇怪,我们明明输入文件内容是"abb\rocddde" 但是直接用cat输出的时候是\r后面的内容。这里面 echo -e 表示启用反斜杠转义的解释即\r 表示回车。root@ubuntu-lab:/...
2022-07-24 14:38:54 568
原创 Linux下内存情况分析
一 前言内存对于系统资源来说,非常重要,内存问题可以导致系统延迟增大,系统内存泄漏,进程被kill等多种严重问题,所以分析进程的内存占用很有必要。本文重点分析了程序中动态申请内存的情况。注意所有测试是 5.13.0-52内核条件下测试的,不同的内核测试环境,内存分类可能很大的不同。二 程序内存结构在linux 32位系统中默认虚拟的内存布局如下:说明:在linux中每...
2022-07-10 17:22:18 2310
原创 神奇BPF6 bpftrace搞个小后门
一 前言其实我都没怎么用过其他的后门程序,记得在kali系统上的有些攻击工具自动反弹shell,通过shell来进行远程的连接,还有的就是利用nc,这个比较简单了。啥是后门,我觉得就是给自己留个方便进出的通道,本来自己已经拿下这台机器了,结果动作太大,被发现了,一顿清理,成果就这样没了,所以要留个隐秘的方便的通道,这样防止已经再用的连接丢失啊,在后悔就晚了。那么什么是个好...
2022-06-18 22:58:36 257
原创 利用ebpf优化负载均衡器
一 前言好久没写文章了,最近忙于抉择,搞的心好累,左右不知道哪条路对自己是最好的,风险与收益并存,是稳扎稳打还是冒一次险,换来的后面的顺畅,我不知道怎么选,左右想法一直在打架。言归正传,ebpf学了一段时间了,开始觉得自己还是了解一些,但是其实差距还有点大,这篇文章是学习ebpf的课程的一篇试验文章,主要是基于ebpf的网络程序,难度比以前学的大,加之新学,只能从模仿试验...
2022-06-12 19:13:25 1012 1
原创 开源web小工具神器
一 概述工作中,经常需要一些小工具来做一些转换,比如base64编码的转换,比如URL Encode 和URL Decode,甚至在产品中也提供了这样的小工具,方便客户使用,不过基本都是简单的命令,如果复杂点的,比如base64编码转换了10多次,或者用AES加密的内容,这样的处理,就需要自己写代码处理,或者遇到了几种转换的组合也需要自己去实现,今天发现开源的Web小工具...
2022-05-29 22:53:43 1812
原创 C语言坑二
一 前言C相对其他语言来说比较古老了,单从语法来说看似简单,其实也有不少坑的,稍有不慎就中招。二 有符号和无符号的坑2.1 有符号的移位操作上代码:#include<stdlib.h>#include<stdio.h>staticvoiddivide_by_two(intnum){while(num){...
2022-05-28 22:36:31 136
原创 C语言面试常考的函数和坑
一 前言思维还是比较奇怪的东西,面临未知的时候充满了谨慎,对于自己稍微熟悉的东西,又会犯自大的问题,从而有些理所当然了,所以任何时候谨慎是个好习惯,用任何函数的时候多读读API的文档说明,可以避免不少坑的。根据我的经验来说,任何自己忽略的事情,总会让自己付出代价,或早或晚,还是那句话,出来混,底子要扎实了,不然早晚会还的。二 容易出差的函数2.1 snprintf返回值对...
2022-05-21 17:35:23 187
原创 一文理解Docker的网络模式
一 前言根据上篇知识了解到,通过设置不同的网络空间来达到网络协议栈的完全隔离,对于不同空间的协议栈是完全隔离,每个网络空间都可以有自己的iptables来进行单独的转发过滤等,不同的网络空间默认无法进行网络通信的,但是通过veth可以把两个不同的网络空间打通达到通讯的目的,前一篇文章也进行了相关的说明。二 Docker的网络模式2.1 桥接模式Docker的默认使用的是l...
2022-05-05 20:21:57 207
原创 虚拟网络环境试验
一 前言本来这几天研究eBPF的xdp的,虽然阅读了不少资料,但是测试代码仍然有问题,所以耽误了,在测试过程中发现了虚拟网络环境,又是自己没有接触过的,所以研究下,挺有意思的,写了篇文章分享下。简单来说,就是构建一套虚拟的网络环境。二 交叉线和veth如果玩计算机比较早的朋友,如果没有路由器,集线器这些通讯设备,我们两个计算机想连接打个CS啥的,也是有一种办法的,就是采...
2022-05-04 13:32:02 1161
原创 程序core了,调试看到的还是问号
一 背景C程序发布的时候,经常去掉-g编译选项的,那么这就遇到一个问题,当程序运行core dump后,想去调试查看core的具体信息,会发现很多符号都被优化掉了,看到的栈信息要么是问号,要么变量无法打印值;去掉符号表,却可以让程序体积更小,而且不容易泄漏程序的信息,更安全些。这就产生了矛盾,我们在运行的时候不需要符号表,调试的时候需要符号表,那我们能否把符号表在发布程序...
2022-04-30 20:46:58 624
原创 eHIDS 一款基于eBPF的HIDS开源工具
一 前言IDS一般指入侵检测系统。入侵检测系统(intrusion detection system,简称“IDS”)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。HIDS全称是Host-based Intrusion Detection System,即基于主机型入侵检测系统,部署在主机内的,主要是对主机的异常行为进行检测,比...
2022-04-17 16:28:52 1315 1
原创 eCapture 可以抓https明文的神奇工具
一 前言前段时间,一直对eBPF感兴趣,也写了一些eBPF的入门介绍文章,朋友就发来个连接说这是一个好东西,我看,是利用eBPF来实现的,刚好最近在研究,所以就有了这篇的介绍文章。二 eCapture 是什么官方介绍如下:eBPF HOOK uprobe实现的各种用户态进程的数据捕获,无需改动原程序。SSL/HTTPS数据导出功能,针对HTTPS的数据包抓取,不需要导入C...
2022-04-09 16:17:12 2109
原创 一篇理解快速排序
一 前言算法对于程序员来说,是一个不得不去过的门槛,除了面试,工作中用到的机会却很少,偶尔用到的算法都有封装好的库调用下,就可以了,少有机会去写一个,偶尔有机会写个和算法相关的函数,可能心中也有几分忐忑,没有充分测试,总是怀疑其中隐藏什么大bug,在不该爆发的场合突然爆发,留下的一地的尴尬。更可气的是,算法学起来的时候看起来都明白了,很简单嘛,真正动手去写的时候,却很难写...
2022-04-04 11:20:05 257
modbus_test_data_part1.pcap
2020-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人