12 xiao_0429

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 8k+

Windows中获取线程起始地址

偶尔碰到了一个小需求,要验证一个线程起始于某个模块,可以限制对代码的执行,起始于特定的线程。        线程的起始地址StartAddress,保存在了 _ETHREAD 结构中,无法从Ring3获取。kd> dt _ethread 80553740 ntdll!_ETHREAD +0x000 Tcb : _KTHREAD +0x1c0 Cre

2016-05-13 21:56:36

新年本应新气象

2016年了,转眼间10年了,没错,高中毕业十年了!(这人真孙子,还以为什么十年了呢!)高中毕业十年不行吗?那可是十年啊!十年是什么概念呢?一个年代,两个博士的学习年限,两届半的奥运会,三次多工作续签,六分之一的人生旅程!没错,这就是十年。        女朋友说,要在年初啊,回首一下过去,展望一下未来!其实也是,这篇文章应该写在2015年的最后一天,结果各种不情愿,也是各种没心情!就到了今天

2016-01-03 15:13:38

OllyDbg使用学习 笔记

1. 运行命令:        F7 -- 单步执行,遇到Call跟进        F8 -- 单步执行,遇到Call跳过,不进入        F9 -- 运行起来,相当于Visual Studio的F5        Ctrl+F9-- 运行到本函数结束(Ret指令后)        Alt+F9-- 跳出系统调用,回到应用程序中        

2015-12-31 00:18:27

GetLastError错误码

参考http://msdn.microsoft.com/en-us/library/ms681381(v=vs.85).aspx【0|0】-操作成功完成。【0x1|1】-函数不正确。【0x2|2】-系统找不到指定的文件。【0x3|3】-系统找不到指定的路径。【0x4|4】-系统无法打开文件。【0x5|5】-拒绝访问。

2015-11-30 22:45:02

Linux基础 笔记(鸟哥私房菜第二版)

1. 常用的命令包括:ls 显示文件-la  显示所有文件bc 简单计算器date 显示日期时间cal 显示日历加参数可以看指定年月的 cal 7 2015man 查看命令帮助info 查看命令帮助帮助的使用方法:空格键 向下翻页[Page Up][Page Down] Home 第一页End 最后一页/string

2015-11-30 13:25:10

分享好用的命令行工具

分享一个好用的命令行,Babun。用官方的题目说就是 A Windows shell you will love!        这个工具是一个集大成者,并且易于安装,更新等。如下是Babun 的Github上的一些介绍。        Babun是一个类Unix的Shell控制台程序,用于Windows上。下载地址如下:http://babun.gihub.io        下

2015-11-27 20:48:51

Bochs调试指令

[执行控制]c|cont                           向下执行,相当于WinDBG的"g"s|step|stepi [count]    单步执行,相当于WinDBG的"t",count 默认为 1p|n|next                       单步执行,类似于WinDBG的"p"q|quit|exit                  

2015-11-14 13:39:06

Source Insight简易教程(自己收藏)

1. 常用窗口作用 及其使用    1. Clip Window        保存了最近的复制 剪切的内容        还有一个功能不太清楚    2. Relation Window        显示了与当前函数或变量相关的东西        调用了那些函数,变量在那个地方被引用了。    3. Context Window        显示了当前变量,类

2015-11-13 13:11:08

JNI原理与使用

1. Java中调用 C库函数    Java的JDK中包含了一份JNI使用的库文件。        在Java中调用C函数,相当于 Java中声明一个接口,在C中做实现。        1. 首先需要编写Java的源文件,同时在Java类中声明函数,如:        class HelloJNI        {            // 本地方法声明 

2015-11-02 16:25:05

如何窥探PDB的秘密?(How to Inspect the Content of a Program Database (PDB) File)

How to Inspect the Content of a Program Database (PDB) File  翻译自:http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P        标题写的不好,没有文学家的气质与修养,瞎看吧!     

2015-10-08 14:39:19

Git 学习笔记

Git 学习笔记1. 创建版本库    git init 将当前目录变为Git可管理的仓库2. 版本库操作    git add readme.txt 将readme.txt文件添加到版本库中,或者将修改过的文件添加到版本库    git commit -m "Wrote a readme file"    1. commit后面的 -m 输入的是本次提交的说明,说

2015-09-22 17:05:41

关于Detours/Minhook挂钩引擎的UnHook

关于Detours/Minhook挂钩引擎的UnHook        文章本身可能用处不大,很少有人会用到所说的这些,权当积累。        一直在使用Detours 和 MinHook 两个Hook引擎进行一些系统API的挂钩,实现特殊的功能。就如标题所用词,UnHook,很少将一个已经Hook的函数再次进行UnHook,所以一直没有注意到问题所在。同事的提醒,让自己有了一点兴趣

2015-09-19 11:43:55

X64编程总结

X64编程和X86还是有一些不同的地方,总结一下日常用到的东西,便于以后查看:1. 调用约定        调用约定对于函数调用有影响,不同的函数调用,在汇编中会因为函数调用后栈不平衡而崩溃,在C/C++语言中如果使用函数指针或以函数作为参数,造成调用栈的不平衡而崩溃。函数调用方式,说到底是函数调用栈不同。        X86的函数调用方式主要有:stdcall / cdecl /

2015-09-11 20:51:48

关于Windows系统调用

以Kernel32.dll 中的 ReadFile 方法为例:首先找到 kernel32!ReadFile 函数,从如下截取的汇编代码中可以看到,改函数会调用kernel32!_imp__NtReadFile指向的函数kernel32!ReadFile+0xd2:7c801962 bb03010000 mov ebx,103h7c801967 891e

2015-09-07 22:23:33

关于DLL导出函数的总结

一直在鼓捣DLL,每天的工作都是调试一个一个的DLL,往DLL里面添加自己的代码,但是对于DLL一直不太了解啊!今天一查资料,才发现自己对于DLL编写的一些基本知识也不了解。要学习,这篇文章先总结DLL的导出函数的方法。        首先说一下如何建立DLL工程!

2015-08-12 00:16:25

我看保护模式

保护模式,对于学过操作系统的人来说,是一个熟悉而又陌生的概念。之所以熟悉,就是所有的操作系统的书籍都会说到保护模式;之所以陌生,我敢说很多人学完了之后,压根不晓得什么是保护模式,怎么算是保护模式,再者就是它到底保护了什么东西。        “你说的不对,怎么能一棒子打死一帮人!保护模式就是进程相互隔离,实现多任务;就是有分页机制,可以节约内存。”,暂且不说对于不对,其实我也不知道我理解的是否

2015-08-02 16:01:10

使用IAT表注入模块到进程中 样例

模块注入到进程的方法有很多,想一一写例子,学习一下,也练习一下!        首先先从IAT表注入开始吧!        如果了解PE文件的格式的话,原理很简单。当一个模块被系统加载起来后,会遍历模块的导入表,将静态导入的函数地址填充到导入表中,以便进程执行起来后,调用到该模块时,能够使用导入函数。要获取导入函数地址,首先要将导出该函数的模块加载起来。        那方法来了,

2015-07-30 23:55:10

调试方法备份

1. 崩溃时自动挂接调试器可以使用如下的命令,将Windbg.exe挂接为即时调试工具。        C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe -I2. 程序启动时自动启动调试器        有时,可能需要调试由另一个进程启动的应用程序的启动代码。 这样的示例包括服务和自定义设置操作。 在这些情况

2015-07-29 17:53:10

常用函数/功能块 记录

1. 获取高精度时间戳        主要用于测试一段代码的执行时间。通过CPU的 tick-per-secs 来获取,可以精确到微秒甚至更高。比GetTickCount() API精确到毫秒要更加精确。        代码如下: LARGE_INTEGER StartingTime, EndingTime, ElapsedMicroseconds; LARGE_INTEGER Fr

2015-07-24 21:47:09

Vim 学习笔记

1.打开文件vim filename 直接使用vim命令打开一个文件。q! / quit! 强制退出ZZ  保存文件为常规的Unix文件ls  列举出当前目录下的文件w   写入文件,但是不退出vimwq  写入文件并离开vim,与ZZ类似  e! / q! 退出vim编辑器,不保存编辑结果w! filename 强制覆盖现有文件!rm filena

2015-07-11 12:03:00

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!