DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

04 2023 档案

摘要:文章目录 开机自启动 环境变量 总结 开机自启动 /etc/rc.d/rc.local 用于添加开机启动命令/etc/rc.local是/etc/rc.d/rc.local的软连接软连接相当于windows的快捷键 嵌入式Linux只有: 文件:/etc/rc.local 目录:/etc/rc0.d 阅读全文
posted @ 2023-04-21 18:27 DoubleLi 阅读(980) 评论(0) 推荐(0) 编辑

摘要:围绕以下几个问题来学习export命令: 1.什么是export命令? 2.为什么要用export命令? 3.怎么使用export命令? 1.什么是export命令? ♦ 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 阅读全文
posted @ 2023-04-21 18:21 DoubleLi 阅读(117) 评论(0) 推荐(0) 编辑

摘要:1、各初始化文件执行流程以下是/etc/rc.local 与 /etc/profile .bash_profile .bashrc 等文件的执行顺序。 1)通过/boot/vm进行启动 vmlinuz 2)init /etc/inittab 3)启动相应的脚本,并且打开终端 rc.sysinitrc 阅读全文
posted @ 2023-04-21 18:17 DoubleLi 阅读(371) 评论(0) 推荐(0) 编辑

摘要:注意:CentOS 6下基本没什么问题,CentOS 7估计不一定能行。 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动。 1、把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd。 #!/bin/sh # # This script 阅读全文
posted @ 2023-04-21 18:11 DoubleLi 阅读(468) 评论(0) 推荐(0) 编辑

摘要:注意:rc.local脚本里面启动的用户默认为root权限。 一、rc.local脚本 rc.local脚本是一个Ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。 该脚本具体格式如下: #!/bin/sh -e # # rc 阅读全文
posted @ 2023-04-21 18:08 DoubleLi 阅读(62) 评论(0) 推荐(0) 编辑

摘要:目录 profile rc.local 自定义脚本:my.bash profile /etc/profile 用户脚本,在用户登陆后执行,只有用户权限,所以只能执行用户权限下的程序,不登录就不会执行。 rc.local /etc/rc.local 系统脚本,系统启动后执行,与是否登陆无关,所以优先级 阅读全文
posted @ 2023-04-21 17:58 DoubleLi 阅读(180) 评论(0) 推荐(0) 编辑

摘要:进程内存布局 我们写程序运行栈的栈帧保存在栈区,函数调用深度太多将导致爆栈栈的大小有上限,每个进程可以指定软上限,操作系统可指定硬上限 linux查看栈上限方法 linux可以通过ulimit命令查看栈上限和设置上限 ulimit -a 查看进程所有资源上限 ulimit -s xx 修改栈上限 也 阅读全文
posted @ 2023-04-21 16:48 DoubleLi 阅读(1126) 评论(0) 推荐(0) 编辑

摘要:有时候在Linux写C++程序处理大量的数据,程序内部需要分配很大的数组来存放一些数据,但有时候分配的数组太大的话运行时会出现段错误。这种情况可能是分配的数组大小超过了Linux系统的默认栈空间的大小了,导致栈空间不够分配,出现错误。 查看linux默认栈空间的大小通过命令 ulimit -s 查看 阅读全文
posted @ 2023-04-21 16:45 DoubleLi 阅读(474) 评论(0) 推荐(0) 编辑

摘要:同样的代码程序: 主程序中释放了一块在 动态库(*.dll)或共享库(*.so) 中分配的内存, Windows 将会出现程序崩溃,而 Linux 则正常运行。 在 linux 下,每个进程只有一个 heap , 在任何一个共享库模块 *.so 中通过 new 或者 malloc 来分配内存的时候都 阅读全文
posted @ 2023-04-21 14:19 DoubleLi 阅读(214) 评论(0) 推荐(0) 编辑

摘要:GDB多进程调试 (一)多线程调试命令 (1)调试父进程:set follow-fork-mode parent (缺省值,即默认) (2)调试子进程:set follow-fork-mode child (3)设置调试模式:set detach-on-fork [on | off] (缺省值on) 阅读全文
posted @ 2023-04-21 11:16 DoubleLi 阅读(133) 评论(0) 推荐(0) 编辑

摘要:多线程调试 (一)多线程调试命令 shell的命令: (1)查看当前运行的进程:ps aux | grep book (2)查看当前运行的轻量级进程:ps -aL | grep book (3)查看主线程和子线程的关系:pstree -p 主线程id gdb的命令: (1)查看可切换调试的线程:in 阅读全文
posted @ 2023-04-21 11:02 DoubleLi 阅读(479) 评论(0) 推荐(0) 编辑

摘要:当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。 1. set sysroot 与 set solib-absolute- 阅读全文
posted @ 2023-04-21 10:43 DoubleLi 阅读(822) 评论(0) 推荐(0) 编辑

摘要:一、core文件 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件。core文件是程序运行状态的内存映象。使用gdb调试core文件,可以帮助我们快速定位程序出现段错误的位置。当然,可执行程序编译时应加上-g编译选项,生成调 阅读全文
posted @ 2023-04-21 10:11 DoubleLi 阅读(1122) 评论(0) 推荐(0) 编辑

摘要:GCC “stack smashing detected”机制 相信使用C/C++语言开发软件的程序猿们都经历过‘栈溢出’的问题。‘栈溢出’问题通常十分的隐蔽,有的时候问题复现也十分的困难。每当软件出现莫名其妙的问题时,总是有人怀疑是不是栈溢出了,但是问题的排查又十分的困难,所以,‘栈溢出’就是广大 阅读全文
posted @ 2023-04-21 09:54 DoubleLi 阅读(105) 评论(0) 推荐(0) 编辑

摘要:关键词:stack-protector、stack-protector-strong、stack-protector-all等等。 1. gcc栈保护机制stack-protector简介 gcc提供了栈保护机制stack-protector。关于stack-protector包含三个选项,分别是s 阅读全文
posted @ 2023-04-21 09:50 DoubleLi 阅读(953) 评论(0) 推荐(0) 编辑

摘要:使用 -fstack-protector 选项的编译脚本 [root@Betty stack_smash_test]# cat mk.sh #!/bin/bash g++ -O2 -Wall -m32 -shared -Wl,-fpic captureexception.cpp -o libcapt 阅读全文
posted @ 2023-04-20 16:44 DoubleLi 阅读(383) 评论(0) 推荐(0) 编辑

摘要:这几天在做总结,把三年前写的一个定位案例,翻了出来。回想起定位这个问题时的场景,领导催得紧,自己对很多东西又不熟悉,所以当时面临的压力还是很大的。现在回想起来感慨还是很多的,我们在遇到任何一个问题,一定不要放弃。还记得在产品线做开发时,学到的一些项目知识,任何一个bug,他总有一天会爆发出来。任何一 阅读全文
posted @ 2023-04-20 14:55 DoubleLi 阅读(475) 评论(0) 推荐(0) 编辑

摘要:最近项目中遇到一个全局变量被莫名修改的问题,代码排查了好久居然没发现,确实有些惭愧,这时候使用一些辅助工具帮助定位就很有必要也比较快速精准!全局变量被修改无非就三种原因:1、自己写的代码修改的;2、数组越界导致的;3、变量定义的时候没有初始化; 排查手段:手段一:踩内存周边地址排查排查被踩内存周边地 阅读全文
posted @ 2023-04-20 14:49 DoubleLi 阅读(1238) 评论(0) 推荐(0) 编辑

摘要:简介 Sanitizers是谷歌发起的开源工具集,包括了AddressSanitizer, MemorySanitizer, ThreadSanitizer, LeakSanitizer,Sanitizers项目本是LLVM项目的一部分,但GNU也将该系列工具加入到了自家的GCC编译器中。GCC从4 阅读全文
posted @ 2023-04-20 14:43 DoubleLi 阅读(1083) 评论(0) 推荐(0) 编辑

摘要:目录 即看即用 详细 简介 Valgrind工具详解 安装 使用 检测内存泄漏 其他内存问题 memcheck 工具的常用选型 其他选项 附录 其他类似工具 实例分析: 03. 使用未初始化的内存 04. 使用野指针 05. 动态内存越界访问 06. 分配空间后没有释放 07. 不匹配使用delet 阅读全文
posted @ 2023-04-20 14:28 DoubleLi 阅读(698) 评论(0) 推荐(0) 编辑

摘要:一 代码 #include<iostream> #include<stdlib.h> using namespace std; void func(){ int *x=(int *)malloc( 10 * sizeof ( int ) ) ; x[10]=0; } int main(){ func 阅读全文
posted @ 2023-04-20 14:14 DoubleLi 阅读(31) 评论(0) 推荐(0) 编辑

摘要:1、程序编译,链接后生成二进制可执行程序。二进制可执行文件以elf格式实现排列。可以通过readelf -S xxxx查看具体section的划分,粗略划分如下图所示。 在这些section中,代码段是只读的,自然也就不存在代码(指令)被改写的情况。数据段,堆,栈区具有读写的属性,但是数据段和堆一般 阅读全文
posted @ 2023-04-20 09:51 DoubleLi 阅读(280) 评论(0) 推荐(0) 编辑

摘要:操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,包括DEP、ASLR等。在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了DEP(Linux下对应NX)、ASLR(Linux下对应PIE)等机制,例如存在DEP(NX)的话就不能直接执行栈上的数据,存在ASLR的话各个系 阅读全文
posted @ 2023-04-19 18:35 DoubleLi 阅读(163) 评论(0) 推荐(0) 编辑

摘要:在写 C/C++ 代码的时候,经常需要为程序分配动态内存,难免就会发生内存泄漏的情况,本文就来说一下如何防止 C/C++ 内存泄漏! 在说防止内存泄漏前,先说一下什么是内存泄漏。 一、什么是内存泄漏? 通俗一点说就是,程序中动态分配的内存并没有正确的释放。 内存泄漏(Memory leak)是在计算 阅读全文
posted @ 2023-04-19 18:28 DoubleLi 阅读(616) 评论(0) 推荐(0) 编辑

摘要:ASAN全称:Address Sanitizer,google发明的一种内存地址错误检查器。目前已经被集成到各大编译器中。 本文分享自华为云社区《内存定位利器-ASAN使用小结》,作者:云存储开发者支持团队。 1.什么是ASAN ASAN全称:Address Sanitizer,google发明的一 阅读全文
posted @ 2023-04-19 18:22 DoubleLi 阅读(355) 评论(0) 推荐(0) 编辑

摘要:前言 对于 C 语言来说,内存被踩是比较常见的问题,轻则普通变量被改写程序逻辑出错,重则指针变量被改写引发指针解引用出现未定义行为风险; 定位内存被踩一直是棘手的难题,如果出现程序跑死,一般可以通过堆栈信息来定位:1)查看跑死的调用链,确定跑死代码的位置;2)根据pc指针找到具体代码;3)走查代码分 阅读全文
posted @ 2023-04-19 18:00 DoubleLi 阅读(1529) 评论(0) 推荐(0) 编辑

摘要:目录 一、内存泄漏 一、介绍 二、几种内存泄露的场景 三、预防与排查 1、valgrind 二、内存越界 一、介绍 二、几种内存越界的情况 三、预防与排查 一、内存泄漏 一、介绍 内存泄漏,是指在程序代码中动态申请的、堆上的内存 由于某种原因、在使用后没有被释放,进而造成内存的浪费。 少部分的内存泄 阅读全文
posted @ 2023-04-19 14:12 DoubleLi 阅读(2945) 评论(0) 推荐(1) 编辑

摘要:当程序因某种异常停止运行时,我们要做的就是找到程序停止的具体位置,分析导致程序停止的原因。对于 C、C++ 程序而言,异常往往出现在某个函数体内,例如 main() 主函数、调用的系统库函数或者自定义的函数等。要知道,程序中每个被调用的函数在执行时,都会生成一些必要的信息,包括: 函数调用发生在程序 阅读全文
posted @ 2023-04-18 19:19 DoubleLi 阅读(1264) 评论(0) 推荐(0) 编辑

摘要:gdb 调试技巧:定位程序卡死问题 最近遇到一个程序卡死的问题,借助 gdb 轻松定位,供大家参考。 遇到程序卡死不退处,可能不知道卡死在什么地方,如果程序非常简单,也许 printf 大法就可以很快定位。但是对于大型程序,尤其是一些框架程序,printf 大法可能就力不从心了。 实际的程序很复杂, 阅读全文
posted @ 2023-04-18 19:07 DoubleLi 阅读(665) 评论(0) 推荐(0) 编辑

摘要:网上很多文章,说到avformat_open_input阻塞,就设置一下 av_dict_set(&avdic, "stimeout ", "300000", 0); ffmpeg源码rtsp.c有这样一段定义 { "timeout", "set maximum timeout (in second 阅读全文
posted @ 2023-04-12 16:09 DoubleLi 阅读(893) 评论(0) 推荐(0) 编辑

摘要:Mat矩阵点乘——A*B Opencv重载了运算符“*”,姑且称之为Mat矩阵“点乘”,其中一个重载声明为: CV_EXPORTS MatExpr operator * (const Mat& a, const Mat& b); 点乘说明: 1. A*B是以数学运算中矩阵相乘的方式实现的,即Mat矩 阅读全文
posted @ 2023-04-12 16:08 DoubleLi 阅读(2297) 评论(0) 推荐(0) 编辑

摘要:工作需要要脱一个VMP壳,我是一个从来没接触过脱壳的人。瞬间那种心情遇到的人应该都知道!没办法硬着头皮找教程,7天看完了 《天草的壳的世界》尝试脱壳下面是我的脱壳过程希望大牛多多指正!1、准备工具,FEID(查壳工具)、DIE(查壳工具)、LordPE(dump工具)、ImpRec(IAT修复工具) 阅读全文
posted @ 2023-04-08 11:34 DoubleLi 阅读(2212) 评论(0) 推荐(0) 编辑

摘要:一、加壳 加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是隐藏程序真正的OEP(入口点,防止被破解,查壳就是为了找它),类似于动物界的龟壳。大多数病毒就 阅读全文
posted @ 2023-04-08 11:22 DoubleLi 阅读(6466) 评论(0) 推荐(0) 编辑

摘要:参考:http://www.cnblogs.com/shang-slam/p/6064905.html https://forum.kde.org/viewtopic.php?f=74&t=97516 1、首先包含头文件(顺序不能错!!!先包含eigen相关库,再包含opencv库!) #inclu 阅读全文
posted @ 2023-04-06 17:40 DoubleLi 阅读(193) 评论(0) 推荐(0) 编辑

摘要:说明 在 opencv 中矩阵都是使用 cv::Mat 表示,但是在 slam 中使用到了 Eigen::Matrix4d 数据类型,对于它们的类型转换,可以使用 opencv 的库,代码如下: #include <opencv2/core/eigen.hpp> #include <Eigen/Co 阅读全文
posted @ 2023-04-06 16:40 DoubleLi 阅读(137) 评论(0) 推荐(0) 编辑

摘要:1、apt-get方式(假设默认安装到/usr/local/include里(可在终端中输入locate eigen3查看位置),若实际中默认安装到了/usr/include的话,可以对应替换下面命令的相应部分)运行命令: sudo apt-get install libeigen3-dev 运行命 阅读全文
posted @ 2023-04-06 14:32 DoubleLi 阅读(179) 评论(0) 推荐(0) 编辑

摘要:代码中通过#include<Eigen/Eigen>即可引入Eigen库,但是直接g++编译的时候是通不过的。提示 Eigen/Eigen: No such file or directory。这里需要将Eigen库加入到库中,可以通过CMakeLists实现,如下: CMakeLists.txt 阅读全文
posted @ 2023-04-06 14:30 DoubleLi 阅读(1311) 评论(0) 推荐(0) 编辑

摘要:Eigen是一个C++开源线性代数库:提供矩阵的线性代数运算。 注:Eigen是一个只有头文件的库 cmake使用eigen库 find_package(Eigen3) INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) 程序中使用eigen库,引用各功能头文件 # 阅读全文
posted @ 2023-04-06 14:29 DoubleLi 阅读(368) 评论(0) 推荐(0) 编辑

摘要:在使用动态库开发部署时,遇到最多的问题可能就是 undefined symbol 了,导致这个出现这个问题的原因有多种多样,快速找到原因,采用对应的方法解决是本文写作的目的。 可能的原因 依赖库未找到这是最常见的原因,一般是没有指定查找目录,或者没有安装到系统查找目录里 链接的依赖库不一致编译的时候 阅读全文
posted @ 2023-04-04 09:56 DoubleLi 阅读(6357) 评论(0) 推荐(0) 编辑

摘要:今天被客户测出来一个问题:程序执行中报错,报错内容如下 XXXX:symbol lookup error:/home/....../libpdfium.so:undefined symbol:CRYPT_MD5Generate 报错分析: 这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三 阅读全文
posted @ 2023-04-04 09:46 DoubleLi 阅读(2101) 评论(0) 推荐(0) 编辑

摘要:我们知道, 在C++中, 是允许函数重载的, 也就引出了编译器的name mangling机制, 今天我们要介绍的c++filt命令便与此有关。 对于从事linux开发的人来说, 不可不知道c++filt命令的使用。 在linux开发中, 如果要调用基础模块库, 就要包含对应的头文件, 并在make 阅读全文
posted @ 2023-04-03 17:41 DoubleLi 阅读(259) 评论(0) 推荐(0) 编辑

摘要:[.NET] ConfuserEx脱壳工具打包 ConfuserEx 1.0.0脱壳步骤 Written by 今夕何夕[W.B.L.E. TeAm]1.先用UnconfuserEx把主程序Dump出来;2.使用CodeCracker大牛的ConfuserExStringDecryptor将加密的字 阅读全文
posted @ 2023-04-02 21:10 DoubleLi 阅读(681) 评论(0) 推荐(0) 编辑

摘要:今天要讲的内容加入了“壳”,在这里我推荐新手尽量使用脱壳机进行脱壳。 说到了使用脱壳机,很多人又要吐槽了。 在你们吐槽之前,我要提前解释一下为什么推荐使用脱壳机。 既然是新手,既然是菜鸟,就要利用工具的便利,手动脱壳确实需要学习,但不是现在,现在最重要的是“兴趣”! 有些人要说了“新手就要先学手动脱 阅读全文
posted @ 2023-04-02 20:57 DoubleLi 阅读(222) 评论(0) 推荐(0) 编辑

摘要:给大家推荐一个.Net的混淆防反编译工具ConfuserEx。 由于项目中要用到.Net的混淆防反编译工具。 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor、Dotfuscator、Eazfuscator.NET、ConfuserEx。 由于是WEB项目,所有使用其中的某些 阅读全文
posted @ 2023-04-02 20:38 DoubleLi 阅读(456) 评论(0) 推荐(0) 编辑

摘要:.net反编译的九款神器 </h1> <div class="clear"></div> <div class="postBody"> 本人搜集了下8款非常不错的.Net反编译利器: 1、Reflector Reflector是最为流行的.Net反编译工具。Reflector是由微软员工Lutz R 阅读全文
posted @ 2023-04-02 11:49 DoubleLi 阅读(1602) 评论(0) 推荐(0) 编辑

摘要:ConfuserEx 1.0.0脱壳步骤 1.先用UnconfuserEx把主程序Dump出来; 2.使用CodeCracker大牛的ConfuserExStringDecryptor将加密的字符串解密;3.使用CodeCracker大牛的ConfuserExSwitchKiller将混淆的swit 阅读全文
posted @ 2023-04-02 11:43 DoubleLi 阅读(1298) 评论(0) 推荐(0) 编辑

摘要:今天给大家介绍一个开源.net混淆器——ConfuserEx http://yck1509.github.io/ConfuserEx/ 由于项目中要用到.net 混淆器,网上搜寻了很多款,比如Dotfuscator、xeoncode、foxit等等。 但大部分收费,当然也有破解版的,公司要求不能用盗 阅读全文
posted @ 2023-04-02 11:39 DoubleLi 阅读(860) 评论(1) 推荐(0) 编辑

摘要:ConfuserEx是.NET下的一款开源混淆工具,功能比较强大,应用也较广泛,本文就使用ConfuserEx工具演示如何混淆及如何对其混淆的程序进行脱壳。 所需工具: 请自行百度下载如下工具: ConfuserEx、UnConfuserEx、Fixer、ConfuserExStringDecryp 阅读全文
posted @ 2023-04-02 11:38 DoubleLi 阅读(974) 评论(0) 推荐(0) 编辑

摘要:De4Dot是一个专门反混淆.net程序的一个工具,支持对于以下工具混淆过的代码的清理: Agile.NET (aka CliSecure)Babel.NETCodeFortCodeVeilCodeWallCryptoObfuscatorDeepSea ObfuscatorDotfuscator.N 阅读全文
posted @ 2023-04-02 11:28 DoubleLi 阅读(395) 评论(0) 推荐(0) 编辑

摘要:De4Dot是一个很强的.Net程序脱壳,反混淆工具,支持对于以下工具混淆过的代码的清理:如 Xenocode、.NET Reactor、MaxtoCode、Eazfuscator.NET、Agile.NET、Phoenix Protector、Manco Obfuscator 、CodeWall、 阅读全文
posted @ 2023-04-02 11:07 DoubleLi 阅读(2075) 评论(0) 推荐(0) 编辑

摘要:目的 对比不同的主流保护工具,针对 dnSpy 反编译出的效果。 非混淆代码: using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace test_wi 阅读全文
posted @ 2023-04-01 21:26 DoubleLi 阅读(2286) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示