|
[求助]学逆向必须的?是不是这些书?确认一下
楼主加油,一起努力 |
|
[下载]壳专题研究
1 壳的原理 1.1 必要的知识 1.1.1 汇编语言教程 没有风的汇编语言专题,简短实用。可以省下不少汇编教程书籍的银子了。 http://bbs.pediy.com/showthread.php?t=64480&tcatid=73 看雪论坛上有很多关于汇编的话题足够初学的朋友学习了 利用GOOGLE很方便的检索一下 site:pediy.com 汇编 site:pediy.com intitle:汇编 site:pediy.com incontent:汇编 以上几句在google.com提交会列出很多。 汇编其实是最简单的编程语言。只要弄清楚8个常用的寄存器使用方式,弄清楚一个栈结构.弄清楚10+条指令,最后弄清楚地址和内存就可以写程序了。其中要记忆的东西非常少。至于什么标志寄存器和中断什么的。在写程序当中熟悉就可以了。 而要学习任何高级语言,要记住的东西绝对不止这些。 个人很喜欢TASM。但是BORLAND一直没有后文了。为了能适应潮流不得不换了MASM。 1.1.2 PE文件格式分析 PE结构方面,看雪论坛上有很多精彩的帖子。这里收集一下。 http://bbs.pediy.com/archive/index.php?t-16568.html http://bbs.pediy.com/showthread.php?s=&threadid=22892 http://www.pediy.com/document/PE/pecoff_v8.rar http://www.pediy.com/document/PE.rar http://bbs.pediy.com/showthread.php?t=66180 (这本电子书可以做为PE格式进阶读物) 同样在看雪论坛上查找 site:pediy.com PE结构 会列出更对的对PE结构的讨论,这些足够初学的朋友学习。 1.2 对PE文件的操作 1.2.1 添加一个新节 http://bbs.pediy.com/showthread.php?p=467116 1.2.2 加密引入表 http://bbs.pediy.com/showthread.php?t=67098 1.2.3 处理TLS表 http://bbs.pediy.com/showthread.php?t=67627 1.2.4 加密资源节 http://bbs.pediy.com/showthread.php?t=68262 1.2.5 处理引出表 http://bbs.pediy.com/showthread.php?t=80406 1.3 壳主体的编写 1.3.1 反静态反汇编技术 http://bbs.pediy.com/showthread.php?t=68486 1.3.2 反调试器技术 http://bbs.pediy.com/showthread.php?t=71113 1.3.3 反汇编引擎的构建 http://bbs.pediy.com/showthread.php?t=74414 1.3.4 重定位模块的构建 http://bbs.pediy.com/showthread.php?t=77514 1.3.5 PE Loader的构建 http://bbs.pediy.com/showthread.php?t=83669 1.3.6 变形引擎的构建 http://bbs.pediy.com/showthread.php?t=95879 1.3.7 代码乱序引擎的构建 http://bbs.pediy.com/showthread.php?t=96640 1.3.8 代码替换引擎的构建 http://bbs.pediy.com/showthread.php?t=96644 1.3.9 再谈引入表保护 http://bbs.pediy.com/showthread.php?t=101394 1.3.10 识别函数与数据区域 http://bbs.pediy.com/showthread.php?t=102977 1.3.11 使用数学运算式随机生成花指令 http://bbs.pediy.com/showthread.php?t=103229 1.3.12 构建壳使用的x86汇编器 http://bbs.pediy.com/showthread.php?t=103757 1.3.13 虚拟机保护技术 2 壳源码分析 2.1 yC1.3代码分析 2.2 UPX3.03 代码分析 3 成果展示 玩命的壳 |
|
[下载]rokit专题研究
1. 内核hook 对于hook,从ring3有很多,ring3到ring0也有很多,根据api调用环节递进的顺序,在每一个环节都有hook的机会,可以有 int 2e或者 sysenter hook,ssdt hook,inline hook ,irp hook,object hook,idt hook等等。在这里,我们逐个介绍。 1)object hook 2)ssdt hook 3)inline-hook 4)idt hook 5)IRP hook 6)SYSENTER hook 7)IAT HOOK 8)EAT HOOK 2. 保护模式篇章第一部分: ring3进ring0之门 1)通过调用门访问内核 2)通过中断门访问内核 3)通过任务门访问内核 4)通过陷阱门访问内核 3。保护模式篇章第二部分:windows分页机制 1)windows分页机制 4。保护模式篇章第三部分:直接访问硬件 1)修改iopl,ring3直接访问硬件 2)追加tss默认I/O许可位图区域 3)更改tss I/O许可位图指向 5。detour 修改函数执行路径,可用于对函数的控制流程进行重定路径。 1)detour补丁 6. 隐身术 1)文件隐藏 2)进程隐藏 3)注册表键值隐藏 4)驱动隐藏 5)进程中dll模块隐藏 6)更绝的隐藏进程中的dll模块,绕过IceSword的检测 7)端口隐藏 7。ring0中调用ring3程序 1) apc方式 2) deviceiocontrol 方式 8。进程线程监控 1)监控进程创建 2)杀线程 3)保护进程和屏蔽文件执行 9。其他 1)获取ntoskrnl.exe模块地址的几种办法 2)驱动感染技术扫盲 3)shadow ssdt学习笔记 4)高手进阶windows内核定时器之一 5)高手进阶windows内核定时器之二 6)运行期修改可执行文件的路径和Command Line 7)查找隐藏驱动 8)装载驱动的几种办法 9)内核中注入dll的一种流氓方法 10)另一种读写进程内存空间的方法 11)完整驱动感染代码 12)Hook Shadow SSDT 13)ring0检测隐藏进程 对于rootkit的研究,涉及到的内容比较多,需要在充分学习理解这些技术的前提下,透过目前网络上出现的一些rootkit病毒,木马来进行分析,做到活学活用。因此,对于本版块的思路很清晰,首先是基础技术理论的研究,由于目前windows还是主流的操作系统,因此,我们主要研究windows下的rootkit,这个课题是一个长期的,对这个课题感兴趣的朋友,欢迎大家一起参与讨论 |
|
[下载]汇编程序设计基础
实验1 查看CPU和内存,用机器指令和汇编指令编程 http://bbs.pediy.com/showthread.php?t=53710 (1楼) 实验2 用机器指令和汇编指令编程 http://bbs.pediy.com/showthread.php?t=53710 (10/11楼) 实验4 [BX]和loop的使用 http://bbs.pediy.com/showthread.php?t=53710&page=2 (18楼) 实验5 编写、调试具有多个段的程序 http://bbs.pediy.com/showthread.php?t=53710&page=3 (23楼) 实验6 实践课程中的程序 http://bbs.pediy.com/showthread.php?t=53710&page=3 (29楼) 实验7 寻址方式在结构化数据访问中的应用 http://bbs.pediy.com/showthread.php?t=53710&page=4 (34楼) 实验8 分析一个奇怪的程序 http://bbs.pediy.com/showthread.php?t=53710&page=4 (40楼) 实验9 根据材料编程 http://bbs.pediy.com/showthread.php?t=53710&page=5 (42楼) 实验10编写子程序 http://bbs.pediy.com/showthread.php?t=57823 [课题2.2]汇编入门小程序联系1 课题要求:编写3个小程序,要求如下 (1)编写程序,从键盘输入一个字母字符,找出该字母的大写/小写字母前导字母和后续字母,并顺序显示出这3个字母字符。 (2)编写程序,比较两个字符串是否相同,并输出比较结果。 (3)从键盘上输入一个4位十六进制数,分别将该数以十六进制和十进制形式显示出来。 http://bbs.pediy.com/showthread.php?t=57474 [课题2.3] 汇编入门小程序联系2 课题要求:编写3个小程序 (1)在以BUF为起始地址的数组中存入了一个字符串,检测该字符串中是否有数字字符,若有,将DL的D3位置1,否则将该位置0。 (2)从键盘输入一个字符串,分类统计该字符串中字母、数字及其它字符的个数,并显示出分类统计值。 (3)在起始地址为ARRAY的数组中,存入了100个16位带符号数,试求该数组中的最大值、最小值及平均值,并将这3个值显示出来。 http://bbs.pediy.com/showthread.php?p=398261#post398261 [课题2.4]汇编入门小程序联系3 课题要求:编写3个小程序 1. 逆序排列字符串 编写一个通用的子程序来实现逆序排列字符串这个功能。 子程序描述: 名称:revers_str 功能:将一个指定的字符串逆序排列 参数:ds:si指向字符串的首地址 返回:无 应用举例:将字符串I Love Masm! 逆序排列并输出屏幕查看结果。 2. 字符串大写转换成小写 字符串大小写转换是日常经常用到的功能,编写一个通用的接口实现大写转换成小写的功能,这个接口使我们更灵活的处理字符串的大小写的转换。字符串必须以0结束。 子程序描述: 名称:lowercase 功能:将一个指定的字符串转换成成小写的形式 参数:ds:si指向字符串的首地址 返回:无 应用举例:将字符串I Love 80X86 Assembly Language 转换为小写形式,并输出屏幕查看转换后的字符串。 3. 字符串小写转换成大写 字符串大小写转换是日常经常用到的功能,编写一个通用的接口实现大写转换成小写的功能,这个接口使我们更灵活的处理字符串的大小写的转换。字符串必须以0结束。 子程序描述: 名称:capital 功能:将一个指定的字符串转换成大写的形式 参数:ds:si指向字符串的首地址 返回:无 应用举例:将字符串I Love Win32 Assembly Language转换为大写形式,并输出屏幕查看转换后的字符串。 http://bbs.pediy.com/showthread.php?t=57937 [课题2.5]汇编入门小程序联系4 课题要求:编写3个小程序 1. 在一个串中查找给定字符的第一个匹配之处 编写一个通用的子程序来实现在一个串中查找给定字符的第一个匹配之处的功能。字符串必须以0结束,区分大小写。 子程序描述: 名称:string_char 功能:在一个串中查找给定字符的第一个匹配之处 参数:(ch)=字符 ds:si指向字符串的首地址 返回:(ax)=匹配的位置 (ax)=0表示未找到匹配位置 应用举例:在字符串I Love Masm! 查找M的第一个匹配的位置,并输出测试结果。 2. 字符串拼接 编写一个通用的子程序来实现将源字符串拼接到目的字符串的功能。字符串必须以0结束。 子程序描述: 名称:string_cat 功能:将源字符串拼接到目的字符串 参数:ds:si指向源字符串的首地址 ds:di指向目的字符串的首地址 返回:无 应用举例:将字符串I Love Win32 Assembly Language!拼接在I Love 80X86 Assembly Language!后面,并输出结果到屏幕上。 3.串比较 编写一个通用的子程序来实现两个字符串的比较的功能。字符串必须以0结束。 子程序描述: 名称:string_compare 功能:比较两个字符串 参数:ds:si指向第一个字符串的首地址 ds:di指向第二个字符串的首地址 返回:(ah)=0 两个字符串相等 (ah)=1 第一个字符串大于第二个字符串 (ah)=-1 第一个字符串小于第二字符串 应用举例:比较字符串I Love 80X86 Assembly Language!和I Love Win32 Assembly Language!,并在屏幕上输出比较的结果。 http://bbs.pediy.com/showthread.php?t=58757 [课题2.6]汇编入门小程序联系5 课题要求:编写3个小程序 1. 试编写一个程序,要求从键盘接收一个个数数N,然后响铃N次(响铃的ASCII码为07) 2. 编写程序,将一个包含有20个数据的数组M分成两个数组,正数数组P和负数数组N,并分别把这两个数组中的个数显示出来。 3. 编制一个程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存放在AX中。 [课题2.7]汇编入门小程序联系6 课题要求:编写3个小程序 1. 把AX中存入的16位二进制数看作是8个二进制的“四分之一字节“。试编写一个程序,要求数一个值为3(即11B)的四分之一字节数,并将该数在终端上显示出来。 2. 设有一段英文,其字符变量名为MEM,并以$字符结束。试编写一个程序,查找单词MOON在该文本中的出现次数,并以格式”MOON XXXX“显示出次数。 3. 有一个首地址为MEM的100D字数组,试编写程序删除数组中所有为0的项,并将后续项向前压缩,最后将数组的剩余部分补上0。 http://bbs.pediy.com/showthread.php?t=61101 [课题2.8]汇编入门小程序联系7 课题要求:编写3个小程序 1. 数据段中已定义了一个有N个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2N单元中,并将该数的偏移地址存入M+2(N+1)单元中。 2. 试编写一个程序,把AX中的十六进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的4个字节中。例如,当(AX)=3B85时,程序执行完后,MEM中的4个字节内容为35H、38H、42H和33H。 3. 把0~100D之间的30个数存入以GRADE为首地址的30个字节数组中,GRADE+i表示学号i+1的学生的成绩。另一个数组RANK就为30个学生的名次表,其中RANK+i的内容是学号为i+1的学生的名次。 编写一个程序,根据GRADE中的学生成绩,将学生名次填入RANK数组中。(提示:一个学生的名次等于成绩高于这个学生的人数加1。) [课题2.9]汇编入门小程序联系8 课题要求:编写3个小程序 1. 已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编写一个程序,把既在A中又在B中出现的整数存入在数组C中。 2. 设在A、B和C单元中分别存放着3个元素 ,若3个数都不是0,则求出3个数之和并存放于D单元中,若其中有一个数为0,则把其它两个数也清0。 3. 试编写一个程序,要求比较数组ARRAY中的3个16位数,并根据比较结果在终端上显示如下信息: (1)如果3个数都不相等则显示0。 (2)如果3个数有两个数相等则显示1。 (3)如果3个数都相等则显示2。 [课题2.10]汇编入门小程序联系9 课题要求:编写3个小程序 1. 已定义两个整数变量A和B,试编写一个程序完成下列功能: (1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中。 (2)若两个数均为奇数,则将两数均加2后存回原变量。 (3)若两个数均为偶数,则两个变量都不改变。 2. 假设已编制5个歌曲程序,它们的段地址和偏移地址存入在数据段的跳跃表SINGLIST中。试编写一个程序,根据从键盘输入的歌曲编号1~5,转去执行5个歌曲程序中的某一个。 3. 文件test.txt中有10、20、30、23、45这几个数,试编写一个程序把它们读入内存,并求和,把和存入AX。 |
|
[下载]windows系统编程资料
(1)Windows系统程序设计之进程管理 Windows进程/线程浅谈 ( EDD 完成 ) http://bbs.pediy.com/showthread.php?s=&threadid=28100 [已更新!][原创/探讨]Windows 核心编程研究系列之一(改变进程 PTE) -- hopy http://bbs.pediy.com/showthread.php?...570#post239570 (2)Windows系统程序设计之线程管理(包括同步机制) (3)Windows系统程序设计之进程间通信 (北极星2003 已完成) http://bbs.pediy.com/showthread.php?s=&threadid=26252 (4)Windows系统程序设计之内存管理 读取指定物理内存地址中的内容 (hopy) http://bbs.pediy.com/showthread.php?s=&threadid=36645 (5)Windows系统程序设计之内存映射(北极星2003 已完成) http://bbs.pediy.com/showthread.php?...578#post214578 (6)Windows系统程序设计之系统服务(北极星2003 已完成) http://bbs.pediy.com/showthread.php?s=&threadid=29187 (7)Windows系统程序设计之异步I/O和完成端口 (北极星2003 已完成) http://bbs.pediy.com/showthread.php?s=&threadid=28342 (8)Windows系统程序设计之结构化异常处理 http://bbs.pediy.com/showthread.php?s=&threadid=32222 (9)Windows系统程序设计之DLL基础(包括加载)(condor已完成) http://bbs.pediy.com/showthread.php?...940#post199940 (10)Windows系统程序设计之插入DLL和挂接API (北极星2003 已完成) http://bbs.pediy.com/showthread.php?s=&threadid=27235 汇编ring3下实现HOOK API (非安全 已完成) http://bbs.pediy.com/showthread.php?s=&threadid=28895 用户层下拦截系统api的原理与实现 ( 默数悲伤 已完成 ) http://bbs.pediy.com/showthread.php?...086#post227086 ( 默数悲伤 已完成 ) 拦截网络数据的小玩意 http://bbs.pediy.com/showthread.php?s=&threadid=32277 (11)对DllMain编程的几点说明:what you can do, and what you CANNOT do (bookworm 完成) http://bbs.pediy.com/showthread.php?s=&threadid=30058 (12) 接着讲和DLL与代码插入有关的几点看法 (bookworm 完成) http://bbs.pediy.com/showthread.php?s=&threadid=30123 |
|
[下载]壳专题研究
好东西下载不要钱 |
|
[下载]rokit专题研究
好东西下载不要钱 |
|
[翻译]代码注入的三种方法
写的好,看一看 |
|
[原创]两种插APC法实现 DLL注入
看不懂也要赞一个 |
|
[下载]rokit专题研究
做一回沙发,哈哈 |
|
[求助]黑客入门
坚持就是胜利 |
|
[原创][原创]PS扣出美女的头发(申请邀请码)
这样也能获得注册吗 |
|
[推荐]PEID确实强大
支持一下, |
|
[推荐][讨论]跪求笔记本防盗软件!!
这个挺好的这个挺好的 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值