• 从汇编到c 调用约定 堆栈原理

    学习汇编的一个重要的方法就是将汇编代码和c代码之间进行转换练习,这样的练习做的越多,对汇编就越熟悉,同时对c代码的理解也更加深刻。很多时候,拿到一个程序的反汇编代码,虽然可能每一行汇编代码都知道什么意思,但却发现对于整个程序干了什么却不知道,原因在于一个简单的程序,翻译成汇编的代码量相对于c程序而言多了好多,而且因为汇编代码和人的思维差别比较大,所以,对于整个逻辑的理解就很困难。然而如果经常做一些将汇编翻译成c代码的练习,那么你渐渐就会发现,汇编代码其实也很都有规律,看到这一段汇编代码,你就很自然的联想到它对应的c代码。 下面我们就开始做一下这样的练习,首先看一下下面的汇编代码: ##### 第一段第代码 00401020 push ebp ; 保存epb 00401021 mov ebp,esp ; 将ebp指向栈顶 00401023 sub esp,4Ch ;为局部变量分配空间,sub esp, xxx相当于多个push 00401026 push ebx ; 保存ebx 00401027 push esi ; 保存esi 00401028 push edi ; 保存edi, 上面3个寄存器在使用之前必须保存 00401029 lea edi,[ebp-4Ch] ; 将刚刚分配的局部空间的地址送到edi 0040102C mov ecx,13h ; ecx这里是循环次数=4ch/4h =13h 00401031 mov eax,0CCCCCCCCh ; 将4个int 3指令放入eax 00401036 rep stos dword ptr [edi] ; 将分配的局部变量空间都用int 3指令填充 .....

    4
    280
    203KB
    2011-06-18
    15
  • sgi stl 源代码

    C++ 之所以取得巨大成功,离不开它的标准库stl, 目前有好几个版本的标准库,但是因为是高手缩写,所以,那个代码风格很让人郁闷,可读性比较差,阅读困难,其中以sgi stl的可读性最好,侯捷先生专门写了一本书剖析stl的源代码,他所用的源代码就是本资源的代码。

    5
    33
    217KB
    2011-06-18
    5
  • black box 源代码

    black box, bblean的源代码, 这是一个shell,是替换windows的explorer.exe的一个shell。 对windows默认的explorer厌烦的同学可以下载安装玩玩,网上有很多相关的主题,可以下载不同的主题体验不同的风格,自己也可以修改源代码,更改显示方式。同时该代码也是学习windows编程的一个绝佳的材料。

    0
    142
    270KB
    2011-06-18
    9
  • 驱动加载工具NtDriverLoader1.1

    这个是本人写的绿色版驱动加载工具。不仅可以加载NT式驱动程序, 而且能加载一些服务程序。 支持文件拖拽功能, 非常好用。

    4
    134
    46KB
    2011-03-01
    10
  • 驱动加载工具NtDriverLoader

    这个是本人写的绿色版驱动加载工具。不仅可以加载NT式驱动程序, 而且能加载一些服务程序。 支持文件拖拽功能, 非常好用。

    0
    151
    45KB
    2011-03-01
    15
  • 调试好帮手ODbgScript 入门系列

    调试程序,程序逆向工作,加密解密都存在大量的重复工作,ODbgScript就是一个让你从重复而又枯燥的劳动中解脱的一个工具.OllyScript是OLLYDBG的一个功能增强插件(Plugin),OllyScript使用的脚本语言是一个种类汇编的语言。你使用它来控制OLLYDBG和进行脚本运算.它的内部机制是一种解释执行的方式,当然,大侠luocong开发了一个和这个功能相近的插件OM,所不同的是OM是运行在虚拟机上的,而ODbgScript是解释执行.现在ODbgScript在世界上有大量的使用者和他们发布了大量的脚本,你能好好的利用它. ODBGScript的前身是由SHaG开发的OLLYScript,感谢SHaG开发了这么好的插件,并且开放了它的源码,SHaG于2004年停止了它的开发,直到今天,还有众多的爱好者在使用它.从2005-11-4开始由Epsylon3继承SHaG继续开发并变更插件名就是你现在看到的ODbgScript,并且继续开发源码发行.它现在的最后版本是1.47,由于Epsylon3开发的版本最大的变化是出现了调试运行窗口.

    3
    171
    959KB
    2010-11-27
    11
  • windows api 参考手册 Windows程序员必备

    为了让大家能更好的阅读和管理Windows API 函数,于是我为大家将网上的资料整理成一个帮助文件。让查阅API 函数变的更简单,容易,也更有效。 本帮助文件中的Windows API 函数大约有774个,共分十二大类,基本上包括了大部分的常用和非常用的Windows API 函数,按分类编排,具有索引功能,支持全文检索,可添加到收藏夹。 声明:本帮助文件由Raise Belling个人整理后出版,内容全摘自网络,版权归实际作者所有。

    0
    99
    975KB
    2010-11-27
    4
  • 加密解密 技术内幕 内核 安全

    不多说, 看目录就知道是比较牛X的书: 第1章 PE文件格式深入研究 1.1 PE文件格式格式纵览 1.1.1 区块(Section) 1.1.2 相对虚拟地址(Relative Virtual Addresses) 1.1.3 数据目录 1.1.4 输入函数(Importing Functions) 1.2 PE文件结构 1.2.1 The MS-DOS头部 1.2.2 IMAGE_NT_HEADERS头部 1.2.3 区块表(The Section Table) 1.2.4 各种块(Sections)的描述 1.2.5 输出表 1.2.6 输出转向(Export Forwarding) 1.2.7 输入表 1.2.8 绑定输入(Bound import) 1.2.9 延迟装入数据(Delayload Data) 1.2.10 资源 1.2.11 基址重定位(Base Relocations) 1.2.12 调试目录(DebugDirectory) 1.2.13 NET头部 1.2.14 TLS初始化 1.2.15 程序异常数据 第2章 PE分析工具编写 2.1 文件格式检查 2.2 FileHeader和OptionalHeader内容的读取 2.3 得到数据目录(Data Dircetory)信息 2.4 得到块表(SectionTable)信息 2.5 得到输出表(ExportTable)信息 2.6 得到输入表(ImportTable)信息 第3章 Win32 调试API 3.1 Win32调试API原理 3.1.1 调试相关函数简要说明 3.1.2 调试事件 3.1.3 如何在调试时创建并跟踪一个进程 3.1.4 最主要的循环体 3.1.5 如何处理调试事件 3.1.6 线程环境详解 3.1.7 如何在另一个进程中注入代码 3.2 利用调试API编写脱壳机 3.2.1 tElock 0.98脱壳简介 3.2.2 脱壳机的编写 3.3 利用调试API制作内存补丁 3.3.1 跨进程内存存取机制 3.3.2 Debug API机制 第4章 Windows下的异常处理 4.1 基本概念 4.1.1 Windows下的软件异常 4.1.2 未公开的可靠吗 4.2 结构化异常处理(SEH) 4.2.1 异常处理的基本过程 4.2.2 SEH的分类 4.2.3 相关API 4.2.4 SEH相关数据结构 4.3 异常处理程序设计 4.3.1 顶层(top-level)异常处理 4.3.2 线程异常处理 4.3.3 异常处理的堆栈展开(Stack unwind) 4.3.4 异常处理程序设计中的几个注意事项: 4.4 SEH的简单应用 4.4.1 Win9x下利用SEH进ring0 4.4.2 利用SEH实现对自身的单步自跟踪 4.4.3 其它应用 4.5 系统背后的秘密 4.6 VC是如何封装系统提供的SEH机制的 4.6.1 扩展的EXCEPTION_REGISTRATION级相关结构 4.6.2 数据结构组织 4.7 Windows XP下的向量化异常处理(VEH) 第5章 软件加密技术 5.1 反调试技术(Anti-Debug) 5.1.1 句柄检测 5.1.2 SoftICE后门指令 5.1.3 int68子类型 5.1.4 ICECream子类型 5.1.5 判断NTICE服务是否运行 5.1.6 INT 1 检测 5.1.7 利用UnhandledExceptionFilter检测 5.1.8 INT 41子类型 5.2 反跟踪技术(Anti-Trace) 5.2.1 断点检测 5.2.2 利用SEH反跟踪 5.2.3 SMC技术实现 5.3 反加载技术(Anti-Loader) 5.3.1 利用TEB检测 5.3.2 利用IsDebuggerPresent函数检测 5.3.3 检查父进程 5.4 反DUMP技术(Anti-Dump) 5.5 文件完整性检验 5.5.1 CRC校验实现 5.5.2 校验和(Checksum) 5.5.3 内存映像校验 5.6 反监视技术(Anti-Monitor) 5.6.1 窗口方法检测 5.6.2 句柄检测 5.7 反静态分析技术 5.7.1 扰乱汇编代码 5.7.2 花指令 5.7.3 信息隐藏 5.8 代码与数据结合技术 5.9 软件保护的若干忠告 第6章 加壳软件编写 6.1 外壳编写基础 6.1.1 判断文件是否是PE格式的EXE文件 6.1.2 文件基本数据的读入 6.1.3 额外数据保留 6.1.4 重定位数据的去除 6.1.5 文件的压缩 6.1.6 资源区块的处理 6.1.7 区块的融合 6.1.8 输入表的处理 6.1.9 外壳部分的编写 6.1.10 将外壳部分添加至原程序 6.1.10 小结 6.2 加壳程序综合运用的实例 6.2.1 程序简介 6.2.2 加壳子程序(WJQ_ShellBegin()) 6.2.3 PE外壳程序 6.2.4 加进Anti技术 6.2.5 通过外壳修改被加壳PE 6.2.6 VC++调用汇编子程序 第7章 如何让壳与程序融为一体 7.1 序 7.1.1 为何需要壳和程序一体化 7.1.2 为阅读此章节需要的知识 7.1.3 基于此章节用的的例子程序说明 7.2 欺骗检查壳的工具 7.2.1 fi是如何检查壳的 7.2.2 欺骗fi 7.3 判断自己是否给脱壳了 7.3.1 判断文件尺寸 7.3.2 检查标记 7.3.3 外部检测(使用dll) 7.3.4 hook 相关的api(防止loader和调试api) 7.4 使用sdk把程序和壳溶为一体 7.4.1 sdk的意义 7.4.2 做一个带sdk的壳 7.5 后记:关于壳和程序的思考 第8章 Visual Basic 6 逆向工程 8.1 简介 8.2 P-code传奇 8.3 VB编译奥秘 8.4 VB与COM 8.5 VB可执行程序结构研究 8.6 VB程序事件解读 8.7 VB程序图形界面(GUI)解读 8.8 VB程序执行代码研究 8.9 我们的工具 8.10 VB程序保护篇 附录A 在Visual C++中使用内联汇编 附录B 在Visual Basic中使用汇编

    3
    41
    1.36MB
    2010-11-27
    5
  • COM技术内幕源码 经典的com书籍随书源码

    COM技术内幕源码 经典的com书籍随书源码

    0
    74
    2.5MB
    2010-11-27
    10
  • c 编译器实现 短小精悍的c语言编译器的实现

    编译器 现将本人搜集和编译的各类程序设计语言的编译器提供给大家,其中很多编译器都是以源代码方式发行的,大家可以通过这些源代码来理解编译器的设计。 C语言的各种编译器:在此提供了在DOS/WIN95/98平台下的几种不同风格的C编译器。其中GCC是完全使用LEX和YACC工具生成的,因此,要生成该编译器必须使用另一个C编译器。详细情况请看GCC的源代码。 Allen I. Holub C:本程序集是Allen I. Holub所写的《Compiler Design in C》一书的附随软件,其中有作者自己编写的词法分析和语法分析工具LeX,occs和LLama,该软件包还包括一个显示C语言分析过程的程序。当然也包括这些程序的源代码,详细情况请看作者提供的文档和样板章节。注意本DOS执行文件是一个自解压程序,运行自解压是一定不要忘记加参数“-d”让程序带目录解压。 GNAT:Ada 95编译器。Ada是美国国防部规定的标准军方语言,它严格按照软件工程的理论设计,被广泛用于工业制造、医疗和国防等领域,在国外,Ada也用于计算机教学,本Ada编译器是由纽约大学开发,在WIN95/NT环境下运行,该软件包含有完整资料和手册。 JDK1.2.2:最新版的JAVA开发工具,以及对应的文档。

    5
    257
    1014KB
    2010-11-27
    14
关注 私信
上传资源赚积分or赚钱