- 博客(73)
- 资源 (4)
- 收藏
- 关注

原创 一个码农的非典型日常爱好
不知道大家是否有日常记账的习惯,反正我有,这些年我一直使用某鱼记账APP,但是最近它广告实在太多,于是突然萌生了自己做一个适合自己的记账App的想法。虽然我算是个程序员,但是我平时只用汇编和C,对于面向对象的C++/Java都没学过。白天需要上班,只能夜深人静的时候,撸会儿代码,算是给生活增添一份乐趣吧。首先我相信编程语言是相通的,百度了下,在网上找到了廖雪峰的官方网站之J...
2019-12-31 18:07:47
707

原创 快!这是关于"Segmentation fault"的最后一趟车!
在该系列的第一篇文章中已经教给大家一个通用的方法就是利用backtrace函数和addr2line命令定位问题,戳这里查看如何轻松搞定“Segmentation fault”,看这篇就够了!至于如何把gdb异常调用栈不包含动态库的实现方法移植到任意平台(ARM/MIPS...)的方法,需要复习的小伙伴看这里:大招!如何把Gdb异常调用栈功能移植到任意平台?今天主要分析包含动态库...
2019-11-06 20:08:31
959

原创 大招!如何把Gdb异常调用栈功能移植到任意平台?
Hello,今天又是Q哥来给大家进行分享了~当屏幕弹出“Segmentation fault”时,程序员该怎么办?之前文章已经教给大家一个通用的方法就是利用backtrace函数和addr2line命令定位问题,没看过上一篇文章的小伙伴可以戳这里查看如何轻松搞定“Segmentation fault”,看这篇就够了!如果你熟悉gdb,当程序跑飞,我们可以执行ba...
2019-10-28 16:32:52
397

原创 如何轻松搞定 Segmentation fault ,看这篇就够了!
我相信每个程序员年轻的时候,在运行某程序,当屏幕弹出“Segmentation fault”时,你会变得非常焦虑,因为你不知道代码哪里跑挂了,初级程序员常常使用printf函数在怀疑点一个个的加打印去定位问题出在哪里了。如果你熟悉gdb,你可能会使用gdb去运行这个程序,然后异常后执行backtrace(简写bt)命令打印异常调用栈。但是gdb并不是万能的,例如程序运行一段...
2019-10-18 18:09:28
140472
1
原创 Linux栈溢出攻防原理
、前言Linux下常用的拷贝函数(如strcpy、memcpy等)如果使用不规范,常常会导致栈溢出。也就是你的软件系统本身存在bug,这样就会成为别人攻击的目标。本文主要讲的是Linux系统如何给栈溢出增加防护网?攻击者又有什么手段绕过一层层防护网实现攻击?2、栈溢出防御2.1 地址随机化技术Linux系统提供设置堆栈地址随机化技术,例如函数内部变量存在栈上,每次打印函数内部...
2019-06-19 19:27:55
1694
原创 故障定位:利用gdb给Linux动态库打热补丁
一、前言对Linux下ELF文件格式的分析是Linux攻防的基础。掌握ELF文件的格式分析,不仅仅是学习别人如何攻击软件的目的,更多的我们应该利用知识帮助解决实际问题。例如Linux有些故障很难复现,如果出了问题,重新换软件版本,很可能就复现不了了。于是在出现故障时,不重启应用(进程)的前提下,给应用程序打热补丁,用新函数替换旧函数,可以达到获取相关异常信息或者修复故障的目的。...
2019-05-11 12:10:42
701
原创 LD_RRELOAD预加载:对Linux下常用命令的攻击
前言Linux下有许多常用的命令,例如cd可以打开一个目录;ls可以查看目录或文件;rm可以删除目录或文件。每个Linux命令其实就是一个可执行的二进制文件,每个文件都有个MD5值,MD5值是用来保证文件不会篡改。比如安装了相同的系统的环境,ls命令的MD5值都是固定的,如果修改二进制本身的ELF文件,通过MD5值对比就很容易发现文件中毒了。下文通过LD_PRELOAD预加载技术,在不修改...
2019-05-05 20:10:50
1010
1
转载 linux登录密码破解
下文是转载的一篇SHA512破解,经测此法也可破解MD5。另外破解速度取决于字典的好坏,可寻找比较优秀的字典。 https://blog.youkuaiyun.com/Key_book/article/details/80439243 linux密码暴力破解由于MD5加密已经发展了很多年,现在市面上已经积累了大量的MD5数据,这样,MD5的安全性也就受到了威胁,所以,从centos6.x...
2018-12-08 19:44:52
1510
原创 “is not a core dump: File format not recognized”错误解决
现象: 我们执行生成core的文件并不是在linux的目录下,而是在windows 和linux共享的hgfs下,导致生成的core.*** 都是0 字节大小。解决: 把需要运行的程序拷贝到linux 的根目录下运行即可。
2015-02-11 22:14:06
8727
1
原创 随笔————写于毕业前夕
我是一个即将毕业的学生,在研究生期间做的主要是Linux驱动方向,也与师弟们一起完成过一个重庆289厂的一个ARM+Linux产品,当遇到技术问题也常常求助于优快云中的大牛们,因此也结交了几个好友,去年因为找工作不知道去哪个企业的时候,短短一个星期,上百位优快云的热心朋友给予我宝贵的建议,最终我选择了离家近的南京的公司。 其实对于Linux驱动,我还是个菜鸟,平时学习的时候喜欢
2014-03-10 15:47:39
2054
1
转载 内存屏障
转自http://blog.chinaunix.net/uid-9185047-id-445168.htmlhttp://hi.baidu.com/_kouu/item/7a796014bdb6d78d88a956d9言归正传,先解释下什么是内存屏障。内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完成对内存的写入操
2014-02-25 14:39:09
1275
原创 Determining IP information for eth0...failed 错误解决
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 问题描述:虚拟机使用wget命令上网,执行service network restart后出现如下错误Determining IP information for eth0...failed解决办法:step1:修改/etc/sysconf
2014-01-07 12:04:04
30184
2
转载 I2C设备移植
转自http://blog.youkuaiyun.com/wtao616/article/details/6147740 前面转载了很多关于i2c的文章,做完一个项目了,也该自己写点i2c心得了,我这个可是纯应用角度的,想看原理的,去看转载的文章,人家写的好多了! 对于一个i2c设备来说,其设备文件是最简单也是最复杂的,说它简单是因为很设备厂商会提供linux下的代码,这样就简单了;但
2013-10-28 21:00:01
2150
原创 SAM9X25文件系统ubi使用问题
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 问题描述:使用SAM9X25,原先板子提供的是ubi文件系统的镜像,没有文件系统目录,这样无法进行开发。解决办法:思路是调试阶段使用nfs文件系统,产品阶段使用ubi文件系统Step1:配置内核和虚拟机均支持nfs文件系统,修
2013-08-26 09:35:17
1856
原创 Unable to handle kernel NULL pointer dereference at virtual address 0000错误解决
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 问题描述:使用AT91SAM9X25时,串口0(ttyS1)不能使用,出现如下错误Unable to handle kernel NULL pointer dereference at virtual address 0000
2013-07-30 14:49:03
3947
原创 error: variable '__this_module' has initializer but incomplete type错误解决
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 问题描述:使用SAM9X25 内核版本是2.6.39 ,编译内核驱动时候会出现error: variable '__this_module' has initializer but incomplete type错误解决办法:m
2013-07-11 09:27:27
6065
原创 VFS: Cannot open root device "nfs" or unknown-block(0,255)错误解决
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 问题描述:使用SAM9X25 内核版本是2.6.39 ,采用NFS文件系统, 在启动内核时会出现VFS: Cannot open root device "nfs" or unknown-block(0,255)错误解决办法
2013-07-05 10:24:15
18113
原创 Verifying Checksum ... Bad Data CRC 错误解决
1.问题描述:使用SAM9X25 内核版本是2.6.39 在启动内核时会出现Verifying Checksum ... Bad Data CRC 错误2.解决办法:查看原先uboot参数:bootcmd=nand read.i 0x22000000 0x00200000 0x280000; bootm 0x22000000 //发现内核镜像大于0x80000修改uboot启
2013-06-26 14:25:37
12437
转载 uboot中bootargs参数设置
转自http://blog.sina.com.cn/s/blog_6e5e78bf0100qv38.html U-boot的环境变量值得注意的有两个: bootcmd 和bootargs。u-bootcmd 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-
2013-06-26 10:26:26
8610
转载 Linux中的内存屏障
转自http://hi.baidu.com/_kouu/item/7a796014bdb6d78d88a956d9 内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的C
2013-06-16 16:45:43
819
原创 linux串口0x03,0x13问题
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清环境:mini2440,fl6410,atmel9g45都会出现这样的问题问题描述:使用RS485串口标准通信,发现大多数情况下数据接收没问题,但是有时却有问题。问题解决:通过串口调试工具向ARM串口发送数据,由ARM接收,发现无法
2013-05-28 16:34:39
3821
原创 linux中C语言实现双向循环链表
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 阅读linux2.6.32.2中双向循环链表的实现,借鉴其内核代码,在应用层实现双向循环链表的建立,插入,删除,以及遍历操作。包含两个文件,list.h是双向循环链表实现函数,test.c是其测试代码,有一定的参考价值! li
2013-05-21 16:28:59
3675
转载 C语言中的逗号表达式与printf参数
转自http://www.cnblogs.com/hnrainll/archive/2011/08/03/2126660.html C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如: 3+5,6+8称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 表达式1,表达式2逗号表达式的求解过程是:先求解表达式1
2013-05-02 17:04:44
2559
原创 rmmod: chdir(/lib/modules): No such file or directory
针对飞凌6410中动态卸载驱动时候出现rmmod: chdir(/lib/modules): No such file or directory怎么解决?1.在文件系统目录中创建/lib/modules/3.0.1这个空目录2.查看/sbin中是否有rmmod,如果没有,静态编译如下代码,将生成的rmmod放入/sbin中 #include #include #includ
2013-04-21 19:37:55
1687
转载 printk无法打印信息
转自http://blog.chinaunix.net/uid-25811099-id-326899.html 对于做嵌入式或者熟悉linux内核的人来说,对printk这个函数一定不会感到陌生。printk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。 【原型】 int printk(const char * fmt
2013-04-21 19:28:08
1850
转载 Linux中的双向循环链表
转自 http://blog.youkuaiyun.com/yaozhenguo2006/article/details/7621551 链表是一种重要的数据结构,应用的非常广泛。链表分为单向链表与双向链表,一般的实现就是在结构体中内嵌指向下一个元素的指针。例如: [cpp] view plaincopyprint?struct name { int num;
2013-04-14 14:21:15
1264
转载 error:warning no newline at the end of file
转自http://blog.youkuaiyun.com/digu/article/details/5945279 main.c :10:2 warning: no newline at the end of file修复这个警告,在文件结尾回车一下就行了。可以很少会有人去仔细探究,为什么gcc会给出这么一个警告?原因其实也很简单,因为标准规定如此。C99第5.1.1.2节这样写道:E
2013-03-04 13:42:48
879
原创 Cadence Allegro学习笔记
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 制作元器件库OrCAD Capture CIS创立单个元器件(直接新建元器件、用电子表格建立元器件)、创立复合封装元器件、大元器件的分割 原理图设计OrCAD Capture CIS创建分级模块 PCB设计预处理OrCAD Capture CIS编辑元器件属性、设计
2013-02-22 09:05:59
3025
转载 NMOS基本逻辑电路分析
转自http://www.elecfans.com/dianzichangshi/2009040745189.html NMOS逻辑门电路是全部由N沟道MOSFET构成。由于这种器件具有较小的几何尺寸,适合于制造大规模集成电路。此外,由于NMOS集成电路的结构简单,易于使用CAD技术进行设计。与CMOS电路类似,NMOS电路中不使用难于制造的电阻 。NMOS反相器是整个NMO逻辑门电路的基
2013-01-21 09:55:53
8275
2
原创 Linux下的网络设备驱动(一)
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 一.网络设备驱动基础1. 以太网基础理论以太网是局域网的一种,它使用载波监听多路访问及冲突检测技术(CSMA/CD),并以10M/S的速率运行在多种类型的电缆上,常用的网卡芯片有DM9000、DM9161、CS8
2013-01-20 10:05:05
6921
原创 ARM体系结构
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 ARM寄存器普通寄存器R0-R15,状态寄存器CPSR和SPSR。其中R15别名PC,中文名程序计数器;R14别名LR,中文名链接寄存器;R13别名SP,中文名栈指针寄存器。CPU执行一条指令时主要有三个步骤:取指、译码
2013-01-19 13:42:06
2794
原创 Linux下的Backlight子系统(二)
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 三.Backlight核心驱动下面我们讲讲backlight子系统。背光子系统目录在/driver/video/backlight下,其中背光子系统核心代码是backlight.c先查看/driver/video/bac
2013-01-18 09:01:26
12532
1
原创 Linux下的Backlight子系统(一)
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清一.Backlight背光子系统概述我们的LCD屏常常需要一个背光,调节LCD屏背光的亮度,这里所说的背光不是仅仅亮和不亮两种,而是根据用户的需求,背光亮度是可以任意调节。Linux内核中有一个backlight背光子系统,该系统就是为
2013-01-17 09:24:06
8418
1
原创 Linux下的Watchdog驱动
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 对于看门狗驱动,在我们内核中把这些代码放在/driver/watchdog文件夹下面,但是watchdog并没有子系统,每个驱动都是独立的,需要我们根据自己的平台去编写看门狗驱动,比如mini2440看门狗驱动代码就是/driver/watchdog/S3c2410_wdt.c,这个代码比较简
2013-01-10 09:08:24
4118
原创 Linux下的RTC子系统
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 实时时钟的作用主要是为操作系统提供一个可靠的时间,并在断电下,RTC时钟也可以通过电池供电一直运行下去。实时时钟驱动也有一个子系统,叫做RTC子系统,其源代码目录是/driver/rtc/,在这个目录下有一个rtc核心代码区,主要是Rtc-dev.c、Rtc-sysfs.c和Rtc-proc.
2013-01-09 10:07:41
4746
原创 Linux下的LED子系统
版权所有,转载必须说明转自 http://my.youkuaiyun.com/weiqing1981127 最简单的led驱动就是从端口输出0或1来关闭或点亮灯。而我们这里讲的led子系统,主要是对led事件进行了分装和优化,这里我们主要讲的是可以实现跨平台的led驱动。不管你是使用三星的平台,还是Atmel的平台,你只要知道如何在你的BSP中添加平台数据,并且知道如何在应用程序中使用这个驱动
2013-01-08 09:18:49
11461
原创 Linux下的Keyboard子系统
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 最简单的按键驱动就是一个中断处理函数,当用户有按键,通过read函数向应用层上报按键信息。而我们这里讲的keyboard子系统,主要是对按键进行了分装和优化,这里我们主要讲的是可以实现跨平台的按键驱动。不管你是使用三星的平台,还是Atmel的平台,你只要知道如何在你的BSP中添加平台数据,并且
2013-01-05 09:52:03
5253
原创 Linux内核总述
版权所有,转载请说明转自 http://my.youkuaiyun.com/weiqing1981127 Linux内核1.Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程通信(IPC)五个子系统组成。1.1进程调度控制系统中的多个进程对CPU的访问,使得多个进程能在CPU中”微观串行,宏观并行”地执行。1.2内存管理的主要作用是
2012-12-27 14:04:53
1093
转载 At91SAMXX系列设置GPIO口中断端口方法
转自:http://rico-studio.com/linux/at91-gpio-interrupt/Linux: 2.6.31Processor: AT91SAM9XEThere are two types of interrupts you can create for an AT91. An external interrupt or a GPIO interrupt. A
2012-12-19 22:11:42
3637
Android逆向CTF基础题汇总
2020-06-11
crackme_linux_x64
2019-10-20
基于Linux内核的CFS调度算法研究
2012-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人