自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Changju博客

用技术改变生活

  • 博客(23)
  • 收藏
  • 关注

原创 windows在ISR中不能睡眠的原因

对于这个问题,本人也做了一些思考,也看了很多网上的讨论,目前也没有确定的结果。现把思路总结一下,以后有新的理解时随时更新。1.  睡眠导致蓝屏?    阅读wrk代码可以知道,蓝屏其实是系统在判断irql后主动进入的结果,这是一种系统设计,是规则而不是原因。2. 中断没有上下文?    其实中断是有上下文的,就是被中断线程的上下文,中断其实是借用了该线程的内核堆栈。我们可以理解为线

2015-07-22 12:42:59 582

原创 RSA加密算法中解密步骤的证明

pq = N  p,q为两个质数    记[N,e], [N,d]分别为算法中的公钥和私钥,根据算法性质知ed = 1 mod (p-1)(q-1)  这里的等号为模等,下同   则ed=1 mod (p-1)   ed=1 mod (q-1)    记n为明文,则n^e=c mod N, c为密文    设ed = a(p-1) + 1 a > 1    则解密过程c^d =

2014-12-10 22:43:19 5126

原创 总结win7平台的dep机制-由phoneme jit功能异常说起

最近在编译j2me的开源

2014-04-25 21:19:50 1571

原创 windows平台编译phoneme经验总结

很多软件都有动态创建java虚拟机的需要,对此我们可以用java的jni接口来实现。j2se的jvm比较大,带的东西比较多,对于产品发布来讲玩玩不是首选。另外,j2se对应的开源工程hotspot相当庞大,不好修改和编译。所以,j2me对应的开源工程phoneme就成为一个不错的选择。        phoneme的简单性也是相对而言,在windows平台下编译绝非易事。当然,这只是对我这种不

2014-02-10 22:26:29 1028

原创 top k算法的3种简单实现和比较

top k算法是什么大家都明白,就不废话了,这里直接上代码。本人用python实现了3种常用算法,命名如下:    heap_bigk1,用堆排序对构建整个数据的大根堆,然后取前k个。    heap_bigk2    初始取前k个数据构建一个小根堆,然后扫描整个数组,发现有更大的数就更新堆。    quick_bigk     用快速排序思想实现的top k算法。#用堆排

2013-12-19 22:45:36 1405

原创 一个range函数理解错误导致程序运行不正确的例子

最近入手python,在网上看到有人用经典排序算法练手,本人也打算效仿,谁知一开始在最简单的插入算法上卡壳,花了一点时间才弄明白原因,原代码如下:def insert_sort( array ):    len = len( array )    for i in range( 1, len ):        temp = array[i]        j = i

2013-12-05 22:31:57 1494

原创 怎样工作才有成效

《卓有成效的管理者》是本好书,近来读之,受益匪浅,博客以记之。    不管你是否从事管理工作,对于知识工作者来说,每个人都是管理者。    管理者的贡献体现在三方面:(1)直接的产品或者服务产出。(2)企业内在价值的提升。(3)培养人才。管理有没有成效主要从这三方面衡量。    人不能被教会怎么样有效管理,但是可以通过学习和时间来学会。    管理要有成效,首要的问题是管理好自己,

2013-12-02 23:32:44 743

原创 gdb和windbg常用调试命令对照

由于工作的需要,本人常常需要在gdb和windbg调试器上来回切换, 经常会弄混淆这两者的命令,现做个对照表,方便随时查阅。起始本人页经常用到ollydbg,但由于od界面很友好,不太需要用到命令,所以就不列出来了。命令windbggdb附加attachattach脱离附加detachdetach运行g/F5run

2013-08-17 11:20:48 3615

原创 mac平台的代码注入和函数hook

关于mac平台的代码注入和函数hook,github上有个开源工程mach_start是做这个事的。本人由于工作的需要也以这个工程为基础做些修改和完善。从我个人的使用经历来看,我觉得mach_star这个工程还远没有达到稳定通用的程序,需要做一些改进。    mach_star的主要问题在于函数调用的修正,虽然有工程与专门的函数来做修正,但实际效果并理想。第一个问题是它只修正导入表的地址,对本

2013-08-17 10:48:40 4522

原创 Nt系列函数与Zw系列函数的关系

常有人搞不清这两组函数的关系,因为调用接口和实现功能一样,有些人就认为他们是同一个函数的不同名称。实际上他们是有区别的,借助windbg这个工具,我们就可以一探究竟。        在ring3层,这两组函数确实是同一个函数,用u命令对NtReadFile以及ZwReadFile反汇编发现,他们的起始地址是一样的。调用ntdll.dll这个动态库的函数时,声明成这两种形式都可以,不过按照微软的

2013-01-28 22:29:09 3244

原创 修改ebp带来的问题一例

一般情况下我们很少去修改ebp,即使使用汇编也只是用到eax 、ebx等几个通用寄存器,ebp和esp都是让编译器自动安排的。但有时ebp的修改就成为必须,如进行inline hook的时候,这时就要小心因为ebp的修改而带来的bug,以下为示例代码: NTSTATUS My_PsCreateSystemThread(

2012-12-28 23:11:01 1374

原创 基于网络的内核调试

驱动调试需要用到两台机器,目前主要是通过串\口、usb或者1394接口来连接。对于软设备驱动来说就多了一种选择,通过vmware等虚拟化软件来虚拟测试机。但有些情况下必须在真实的双机环境进行,如真实设备驱动的调试,以及其他驱动无法在虚拟机上运行的情况,这时就要考虑用什么接口来连接了。串口的优点是它属于标配,几乎每个PC主板上都有,串口线也便宜,另外就是所有的windows系统都支持串口调试,所以很

2012-12-11 23:13:15 2812

原创 用rm命令批量删除文件的潜在问题

最近写了一个用rm命令批量删除文件的函数,测试发现有些文件删除不干净。经过分析发现是文件名包含的shell定义的特殊字符,这些特殊在shell有特殊含义。比如我要删除c$a.class文件,调用rm c$a.class的结果是删除c.class文件。$字符在shell里面是变量扩展的意思,而我没有定义a变量,所以$a被解释为空。        除了$字符,还有其他几个特殊字符:  \ '

2012-11-28 21:01:55 1748

转载 win7编程接口的一些变化

原文链接:http://www.nirsoft.net/articles/windows_7_kernel_architecture_changes.htmlWindows 7 introduces a new set of dll files containing exported functions of many well-known WIN32 APIs. All these file

2012-11-03 15:41:33 13351

原创 GetLastError函数实现

MSDN上说这个函数返回的是当前线程最近一次错误码,这个错误码是通过调用SetLastError函数设置的,具体实现其实相当简单,也就两句汇编代码    mov eax, dword ptr fs:[18h]    mov eax, dword ptr [ecx + 34h]    首先获得TEB指针,然后读TEB起始偏移0x34位置的值,查阅TEB结构得知,这个值就是LastErro

2012-10-25 21:53:21 1540

原创 windows同步原理与调试(PPT)

最近在公司做了一次关于windows同步方面的培训,以下是本次培训的PPT文字。    Windows同步原理与调试     richard    2012.10.9  主要内容与讲解方式..用户态同步技术 ..内核态同步技术 ..使用windbg调试用户态线程死锁 ..讲解不面面俱到,不讲API使用 ..讲原理的同时穿插windbg的使

2012-10-11 23:01:25 1051

原创 java class文件解析的几点经验

java class文件的解析有同行已经写得很详细,这里不再耍斧子,这里根据自己的经验写几个注意的地方。        constant pool里面存放的是各种常量,常量结构根据tag的不同而不同,长度可变。        java class里面结构体是没有字节对齐的,在c种可以用#pragma pack(1)表修饰结构体。        constant pool里面的index

2012-09-20 07:33:22 637

原创 windows程序逆向工具汇总

对于软件逆向,有称手的工具往往事半功倍,这里简单罗列出一些常用工具,不做详细介绍,供新手一个入门指引。        静态分析工具首推IDA,有了它其他的反汇编工具基本用不着。        动态调试工具有OD和windbg。 调试应用层程序两个调试器都可以,OD因为主要面向逆向,窗口布局更为合理直观且插件众多,所以一般情况下都首选OD,windbg没那么方便,大部分操作通过命令来进行,但

2012-09-15 22:32:37 15001 3

原创 asprotect脱壳经验谈

数月前对某一程序分析,拿到程序应PEid扫描了一下,发现是asp 的壳,之前脱过此类壳感觉难度不大,此程序在OEP调用了GetStartupInfo,找到OEP并不困难,结合堆栈基本就可以确定OEP。然后开始用ollydump dump程序,importrec修复,一切顺利。    好了,开始运行脱壳后的程序,程序开始处理,显示进度条。在这时本人喜悦不胜言表,就等着开始自己的探索之旅,突然我w

2012-09-09 11:23:48 2672

原创 从函数调用看mac平台的兼容性

最近公司让我负责mac下的录音模块的开发,因为要做内置录音,模块分为两部分,虚拟设备和上层调用接口。本来事情做完了很开心(以前没做过mac下的开发,有点小成就感),可过了一段时间,测试部说我们的录音软件有问题,一录音就出现崩溃,找来找去都没找到问题的原因,产品又急着发布,本人的压力一下子大了起来。      经过测试,发现在mac 10.5 10.7上面的都运行挺好,唯独在10.6下就出现问题

2012-09-01 07:22:45 566

转载 从EXE的资源段提取sys文件-转载自(rootkit:subverting the windows kernel)

Windows PE executables allow multiple sections to be included in the binary file. Each section can be thought of as a folder. This allows developers to include various objects, such as graphics files,

2011-12-30 20:33:14 1165

原创 vmware NAT共享设置

使用宿主机的vmnet 8, vmnet 8设置如下:      IP Address. . . . . . . . . . . . : 192.168.5.1     Subnet Mask . . . . . . . . . . . :255.255.255.0     Default Gateway . . . . . . . . .192.168.5.2       虚拟机

2011-12-24 10:16:52 428

原创 临界区的内部结构与实现

做windows开发的人都知道临界区是应用层同步对象,相对于其它内核同步对象来说,等待临界区的开销比较小,其原因在于临界区采用忙等(自旋)的方式来避免线程切换。这些原理性知识大家都比较清楚,但对于它的实现细节就不是每个人都了解了。我在这方面也曾经存在困惑,后来通过分析它的结构以及相关几个API的实现,总算有了比较清楚的认识。       在windows系统内部, 临界区的结构体叫做_RTL_

2011-12-18 08:43:44 4431 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除