0x00 背景 最近有个需求,需要源码调试glibc。由于系统的glibc没有调试符号,所以也算费了一番周折。不过ubuntu还是比较人性化的。 0x01 方法 首先在ubuntu上安装带调试符号的libc sudo apt-get install libc-dbg 在32位下命令如下: sudo apt-get install libc-dbg:i386 其次,需要通过apt来下载源码。Ubuntu的源码是基于GNU libc做了修改,随意最好通过Ubuntu的源来下载。 sudo apt-get ins
###ubuntu 12.04 安装llvm3.4、ios-lang交叉编译环境小记 在ubuntu 12.04上先安装gcc-4.8,然后安装llvm,clang,libcxx,libcxxabi.由于libcxx和libcxxabi相互依赖,需要两次安装libcxx。最后安装theos等开放的ios开发工具链 安装gcc-4.8如前文所述install gcc4.8 on ubuntu 12.04 安装llvm,clang /etc/apt/sources.list中添加如下两行:
今天想看看linux的c库源码,但是那源码结构比较乱,跳来跳去比较难看。于是想写个小程序进入c库调试,发现要调试c库还不容易。
之前讲Python3(3.6.x)基础的过程中,Python3.7发布了,当时说很多第三方库没更新全,现在可以安装了。
Tips:如果不装libstdc++.so会报错:ImportError: /usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by /opt/calibre/lib/libQt5WebKit.so.5) GLIBC_2.18,GLIBCXX_3.4.19 # yum install libstdc++.so.6 -y --- 查看动态库版本有哪些 # strings /usr/lib64/libstdc++.
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
perf 是 Linux 官方的性能分析工具,它具备 profiling、tracing 和脚本编写等多种功能,是内核 perf_events 子系统的前端工具。
大多数使用以下命令的用户不会遇到什么困难。但是,如果打错了命令,很容易导致新系统无法使用,因此在运行 strip 命令前,最好备份 LFS 系统的当前状态。
1. 问题背景 出现网络问题时,常常需要打开 LwIP 内部打印信息调试、查看协议栈运行状态,以获取更多的有效信息。
摘要:当程序运行出现段错误时,目标文件没有调试符号,也没配置产生 core dump,如何定位到出错的文件和函数,并尽可能提供更详细的一些信息,如参数,代码等。 第一板斧 准备一段测试代码 018.c #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp = NULL; fprintf(fp, "%s\n", "hello"); fclose(fp); return 0; } 编译运行 $ gcc 0
参考:codingshiksha.com/c/c-program-to-build-snake-game-using-ncurses-library-full-project-for-beginners/
在read之前调用了close(1)来关闭stdout流,然后有一个裸的格式化字符串漏洞。由于stderr没有关闭,可以通过半个字节的爆破将bss段上stdout指针指向和stderr同一个文件结构体,此时再调用printf函数时,就可以将内容从stderr流输出来。
到Cyberchef,先ROT13(好像就是凯撒密码,解密时Amount需要调整),然后解Base64:
本文全面探讨了在PyCharm中遇到的“Error occurred when installing package ‘x32dbg’”问题,并提供了通过更换Python版本来解决此问题的详细步骤。关键词包括PyCharm, x32dbg, Python版本兼容性, 软件包安装错误, 虚拟环境配置。本教程适用于所有级别的Python开发者,从入门新手到经验丰富的专业人士。
x64dbg 调试器的源码编译很麻烦,网络上的编译方法均为老版本,对于新版本来说编译过程中会出现各种错误,编译的坑可以说是一个接着一个,本人通过研究总结出了一套编译拳法可以完美编译输出,不过话说回来x64dbg这种使用两个编译器开发的方式以及调用太多的第三方项目想要完全编译其实也是非常困难的,如下笔记只提供编译x64dbg本体,并确保其能够正常运行。
1.找到堆栈信息 一般堆栈在Android log或者tombstore里面,android log里面直接搜libsurfaceflinger或者surfaceflinger定位到log,SW-WD tombstore文件是系统在系统发生NE是抓到的堆栈信息,可能会包含多份文件,找的需要的即可 2.解析堆栈 backtrace信息, 主要看调用栈,我们能从中得到发生问题的具体代码行号,比如:
工作中需要将原本部署在物理机或虚拟机上的一些基础服务搬到kubernetes中,在搬的过程中遇到了不少坑,这里记录一下。
在第一章中我们介绍了x64dbg这款强大的调试软件,通过该软件逆向工程师们可以手动完成对特定进程的漏洞挖掘及脱壳等操作,虽然x64dbg支持内置Script脚本执行模块,但脚本引擎通常来说是不够强大的,LyScript 插件的出现填补了这方面的不足,该插件的开发灵感来源于Immunity调试器中的ImmLib库,因Immunity调试器继承自Ollydbg导致该调试器无法支持64位应用的调试,同时该调试器也长期没有开发者进行维护,正是在这种情形之下LyScript诞生。
官网:https://oss.oracle.com/projects/libaio-oracle/,正如标题所说,非常简单了,不用多解释,请直接看头文件,其中aio_poll类似于poll,重要的结构是aiocb64,类似于epoll_event。 #ifndef _SKGAIO_H #define _SKGAIO_H #define IOCB_CMD_READ 0 #define IOCB_CMD_WRITE 1
这本书是这两天刚买到的,从前天开始看,然后到昨天晚上就看完了,整体的感觉就是书的内容虽然不错但是感觉有点太少了,一种意犹未尽的感觉。
最近使用vue的过程中,安装了vue调试工具vue-devtools,确实强大好用,不过遇到一蛋疼问题,每次启动chrome 就弹出以下提示
之前说有机会就说下Linux下如何搭建C#版的交互编程,今天写篇文章还债^_^ Win下比较简单,可以自己看官方文档https://github.com/zabirauf/icsharp/wiki/Installation下面逆天带搭建搭建下Linux下的环境(官方方法有问题)
工作中需要将原本部署在物理机或虚拟机上的一些基础服务搬到kubernetes中,在搬的过程中遇到了不少坑,笔者在此特别分享一下所遇到的问题及相应的解决方法~ 一、异常网络引起的问题 之前使用redis-operator在kubernetes中部署了一套Redis集群,可测试的同事使用redis-benchmark随便一压测,这个集群就会出问题。经过艰苦的问题查找过程,终于发现了问题,原来是两个虚拟机之间的网络存在异常。 经验教训,在测试前可用iperf3先测试下node节点之间,pod节点
这里以在ubuntu 16.04安装Ubuntu Tweak为例进行说明,通常安装包依赖问题都可以用这种方法解决:
x64dbg 是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可靠的解决方案。正是因为有了这些优点,才能使其成为当今最受欢迎的反汇编调试软件之一。
Chrome勾选开发者模式安装插件后,每次启动都会弹出请停用以开发者模式运行的扩展程序的提示,最为一枚具有强迫症的程序员,这个绝对不能忍~~
Ubuntu18.04安装ROS ros-melodic-desktop-full时,遇到错误“unmet dependencies. Unable to correct problems, you have held broken packages."。
喜欢折腾的同学,会豪气如何升级 Debian Stretch 的内核到新版。遗憾的是现在能搜到的升级 Debian Linux 内核的文章多数是使用Ubuntu的deb安装包,其实这样装上去是有问题,常见的问题是,总会提示需要 apt --fix-broken install 。
这个教程以 Windows7虚拟机作为被调试的虚拟机,Windows10虚拟机作为调试的虚拟机 。Windows7虚拟机的设置跟着老师的Win7x86双机调试视频设置就行(就是跟着视频教程输入那四段语句,然后再安装一个安装包)。下面就说明下双虚拟机双机调试的步骤 。
安装GCC:sudo apt-get install build-essential
博客上关于RadAsm阅读量很高,而之前的文章适用于旧版.这里出以下新版.虽然此时是新版.但是以后会更新的.但是大体不会改变.而且这一次的设置更快,更方便.
RTC是什么呢?相信学习嵌入式的伙伴都熟悉,以下介绍引用自RT-Thread文档中心-RTC设备
这个教程以 Windows 7 虚拟机作为被调试的虚拟机, Windows 10 虚拟机作为调试的虚拟机 。Windows 7 虚拟机的设置跟着老师的 Win 7 x 86 双机调试视频设置就行( 就是跟着视频教程输入那四段语句,然后再安装一个安装包) 。下面就说明下双虚拟机双机调试的步骤 。
在使用 cephadm 安装 ceph v16.2 时升级了 python,系统默认版本是 3.7.4 ,升级后版本是 3.8.5,glibc 作为依赖同时进行了升级,系统默认版本是 2.28 ,升级后版本是 2.31,幸好记录及时,截图留存了软件包升级信息,如下
查看系统glibc库版本 strings /lib64/libc.so.6 |grep GLIBC_ 1.png 下载地址 http://ftp.gnu.org/gnu/
依次将这四个安装包解压,并且每解压一个,执行一下解压文件夹下的install下的doinst.sh脚本
最近安装一个软件需要glibc-2.17。 使用ldd --version 发现系统的glibc版本为 glibc-2.12,当时没有想到更好的方法,就尝试将系统的glibc版本修改为glibc-2.17 进行编译安装 glibc-2.17 http://ftp.gnu.org/gnu/glibc wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz tar zxvf glibc-2.17.tar.gz cd glibc-2.17 mkdir build
1,ctags和taglist,这个大家估计都很常用,在ubuntu下只要安装exuberant-ctags即可啦,另外tagbar支持面向对象语言的展示
1、FatFS作者ChaN老师新作 一如既往的漆包线风,手艺依旧很棒,这次设计的电源板,做成了双面板,并且做了铺铜设计,先铺绝缘层再铺铜皮。正面的器件需要接地就戳破绝缘层焊接到铜皮。 正反面设计:
3、 稍等一会儿会出现要不要设置网络,一般来说网络没问题就不用设置了,我这里选择No:
C++的版本管理简单粗暴,像libc这种基础库如果需要多版本,用起来非常不方便,但c/c++基础库都是向下兼容的,最好的方式就是用一套比较新的系统,带着新的libc,再安装一套和系统版本同年代的新一点的gcc编译器即可,可满足大部分的使用场景,避免一套环境上折腾多套libc、libstdc++,经验之谈:非常麻烦性价比很低!
1、查看系统glibc支持的版本 # strings /lib64/libc.so.6 |grep GLIBC # rpm -qa | grep glibc 2、升级glibc支持的版本到GLIBC_2.15 官网地址 ➡️ http://www.gnu.org/software/libc/ 官网所有安装包 ➡️ http://ftp.gnu.org/gnu/glibc/ # cd /usr/local # wget http://ftp.gnu.org/gnu/libc/glibc-2.15.ta
在开发时项目所依赖的包需要更高版本的glibc库支持, 而Centos6.5 中glibc默认版本为2.12, 这样调试时可能会遇到报错。但如果不小心把动态库中的libc.so.6给删了,瞬间所有的非系统命令都将无法使用,使用就报错。因为libc.so.6 是c运行时库glibc的软链接,而系统几乎所有程序都依赖c运行时库。程序启动和运行时,是根据libc.so.6 软链接找到glibc库。删除libc.so.6将导致系统的几乎所有程序不能工作。 每个glibc.so文件有它支持的libc版本,可以通过 strings /lib64/libc.so.6 |grep GLIBC 查看,一定要选择这条命令列出的版本。 [root@test1 ~]# strings /lib64/libc.so.6 |grep GLIBC GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2.14 GLIBC_2.15 GLIBC_PRIVATE
最近安装新版本MySQL(Percona Server)时发现所依赖的libstdc++.so.6、libc.so.6均较高(尤其在Centos 6版本上安装时),导致无法完成数据库安装。
Asterisk是一个开源专用交换机(PBX)服务器,它使用会话发起协议(SIP)来路由和管理电话呼叫。值得注意的功能包括客户服务队列,待机音乐,电话会议和电话录音等。
【转载请注明出处】:https://blog.csdn.net/huahao1989/article/details/107967581
背景:第三方so依赖glibc2.14版本,如何在不升级cenos 6.2自带的gblic2.12情况下,运行so?
领取专属 10元无门槛券
手把手带您无忧上云