Linux下HOOK动态链接库中API的方法

2012年,我写了一篇介绍Windows系统下Ring3层系统API的hook方案,其在底层使用了微软的Detours库——《一种注册表沙箱的思路、实现——Hook Nt函数》。5年后,我又遇到这么一个问题,但是系统变成了Linux。我最开始的想法是找一个Linux下的Detours库,于是找到了subhook。其底层思路是:修改被Hook函数起始地址处的汇编代码,让执行流程跳到我们定义的函数中。...
阅读(340) 评论(0)

代码打补丁的利器——diff和patch

一般来说,如果我们在研发过程中需要对代码进行修改,是不需要通过打补丁的方式的,因为我们可以直接改动文件即可。但是如果针对一款要上线的产品,我们总不能在研发的电脑上编译通过后直接发布到线上的。(转载请指明出于breaksoftware的csdn博客)因为这样做有很多缺陷:最后负责编译的同事,可能忘记提交最终的代码。这样代码库中的代码逻辑和线上运行的产品逻辑将存在差异。最后负责编译的同事的编译环境可能...
阅读(314) 评论(0)

libev源码解析——定时器监视器和组织形式

我们先看下定时器监视器的数据结构。(转载请指明出于breaksoftware的csdn博客)/* invoked after a specific time, repeatable (based on monotonic clock) */ /* revent EV_TIMEOUT */ typedef struct ev_timer { EV_WATCHER_TIME (ev_timer)...
阅读(337) 评论(0)

libev源码解析——定时器原理

本文将回答《libev源码解析——I/O模型》中抛出的两个问题。(转载请指明出于breaksoftware的csdn博客)        对于问题1:为什么backend_poll函数需要指定超时?我们让其一直等待到有事件发生不是更好么?        答案是“必须要指定超时”。为什么呢?在《libev源码解析——总览》中,我们抛出过一个问题:定时器和事件是如何关联的?因为libev是一个事件库,...
阅读(354) 评论(0)

libev源码解析——I/O模型

在《libev源码解析——总览》一文中,我们介绍过,libev是一个基于事件的循环库。本文将介绍其和事件及循环之间的关系。(转载请指明出于breaksoftware的csdn博客)        目前ibev支持如下IO事件模型:select模型。对应文件是ev_select.c。poll模型。对应文件是ev_poll.c。epoll模型。对应的文件是ev_epoll.c。port模型。对应文件是...
阅读(429) 评论(0)

libev源码解析——调度策略

在《libev源码解析——监视器(watcher)结构和组织形式》中介绍过,监视器分为[2,-2]区间5个等级的优先级。等级为2的监视器最高优,然后依次递减。不区分监视器类型和关联的文件描述符的值,权限高的要优先于权限低的执行。但是ANFD结构中的监视器链表无法满足高等级优先执行的特性。那么libev是如何解决这个问题的呢?(转载请指明出于breaksoftware的csdn博客)...
阅读(365) 评论(0)

libev源码解析——监视器(watcher)结构和组织形式

在《libev源码解析——总览》中,我们介绍了libev的一些重要变量在不同编译参数下的定义位置。由于这些变量在多线程下没有同步问题,所以我们将问题简化,所提到的变量都是线程内部独有的,不用考虑任何多线程问题。(转载请指明出于breaksoftware的csdn博客)        之前提到过,libev支持多种功能,比如文件状态监控、定时器等。这些功能都是有其相对应的一个“监视器”(watche...
阅读(394) 评论(0)

libev源码解析——总览

libev是个非常优秀的基于事件的循环库,很多开源软件,比如nodejs就是使用其实现基础功能。本系列将对该库进行源码分析。(转载请指明出于breaksoftware的csdn博客)        不知道是被墙了还是网站不再维护,它的官网(http://libev.schmorp.de/)在国内已经没法访问了。但是我们仍然可以从github上下载其源码(https://github.com/enk...
阅读(531) 评论(0)

静态分析C语言生成函数调用关系的利器——cflow

在《静态分析C语言代码生成调用关系的利器——calltree》一文中,我们介绍了calltree分析C代码的方法。总体来说,calltree除了在编译时有点小曲折外,功能基本是够用的。它还有两个我认为非常好的优点...
阅读(640) 评论(0)

静态分析C语言生成函数调用关系的利器——calltree

calltree编译、使用。使用工具静态分析C代码,产生调用关系图,辅助阅读代码。...
阅读(602) 评论(0)

IT项目研发过程中的利器

“工欲善其事必先利其器”,这是我写这个系列的主要原因。...
阅读(306) 评论(0)

同步、异步、堵塞、非堵塞和函数调用及I/O之间的组合概念

同步、异步、堵塞、非堵塞、同步IO、异步IO、堵塞IO、非堵塞IO...
阅读(399) 评论(0)

码农技术炒股之路——选股策略样例

有了之前抓取的数据,我们便可以利用这些数据进行股票分析。(转载请指明出于breaksoftware的csdn博客)        为了便于计算,我决定引入numpy库pip install numpy -i http://pypi.douban.com/simple         其实这篇文章并不能告诉大家一个恰到好处且有用的样例。因为之前我分析过,同花顺等分析软件公式存在很多弊端,并不能满足我...
阅读(744) 评论(0)

码农技术炒股之路——抓取日线数据、计算均线和除权数据

日线数据是股票每日收盘后的信息。这块数据不用实时抓取,所以并不占用宝贵的交易时间的资源。于是我们抓取完数据后直接往切片后的数据库中保存。(转载请指明出于breaksoftware的csdn博客)抓取日线数据        我们先要获取今天有交易信息的股票代码。因为存在股票停牌的情况,所以不需要这类股票信息 def _get_all_share_ids(self): date_...
阅读(681) 评论(0)

码农技术炒股之路——实时交易信息、主力动向信息分库备份

一般来说,一个股票信息应该保存在一张表中。但是由于我机器资源限制,且我希望尽快频率的抓取数据。所以每天我将所有股票的实时交易信息放在daily_temp库中的一个以日期命名的表中。主力动向信息也是如此。但是盘后分析股票时,我们会以单只股票进行分析。这样就需要跨越很多天,而这样的设计将导致需要查询若干个表,且随着日期增加,读取的表也将增加。我觉得这样是不合适的。(转载请指明出于breaksoftwa...
阅读(593) 评论(0)
203条 共14页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:718516次
    • 积分:9235
    • 等级:
    • 排名:第2215名
    • 原创:202篇
    • 转载:1篇
    • 译文:0篇
    • 评论:463条
    博客专栏