天书夜读学习笔记一
来源:互联网 发布:java 跨域请求处理 编辑:程序博客网 时间:2024/04/28 17:46
今天做公交车去女朋友那,一个来回光车上就5个小时。拿了袁哥的天书夜读路上看。
其实之前看过一遍,不细。
我之前总喜欢看电子书,即免费又方便。 直到我前几天看买来的《windows驱动开发详解》。我边看边做笔记,发现效率提高了一些,而且很东西一写出来,总结一下之后就会非常清晰。而这本书其实我也读了一边了。
在路上,边看边挑出重点做一些总结性的笔,然后放到这里。或许对知识的有效积累是一个不错的尝试。
这本书的知识主要涉及到了反汇编,内核编程 ,内核的研究和修改,病毒反病毒及软件的保护。知识有点杂,但不管以前知不知道,我都会记录。有的我认为对我有帮助或者只是为了加深印象。
第一章 汇编指令与C语言
push esp-4
pop esp+4
sub a,b a=a-b
add a,d a=a+b
ret 调回调用的地方,call 的下一条,call在跳转的时候把下一条地址push到堆栈
call 调用函数
ret 弹出返回地址
;call的本质相当于push + jmp . ret的本质相当于 pop + jmp
mov
xor 异或,xor eax,eax == mov eax,0 但是xor的效率要高于mov
lea:取得地址(第二个参数)后放入前面的参数
lea edi , [ebp-0cch]
stos 将eax中的数据放入edi所指的地址中,同时edi会增加4,rep使指令重复执行ecx中填写的次数
mov ecx , 30h
mov eax , 0cccccccch
rep stos dword ptr es:[edi]
-------------------------------------------
jmp
jg
jl
jge...
-------
cmp
-------------------------------------------
_cdecl C调用规则的函数结构反汇编
esp 堆栈栈顶
返回值保存在eax
ebp总是用来保存函数执行之前的esp值,执行完毕之后,我们用ebp恢复esp
push ebp
mov ebp , esp
;把esp往下移动一个范围,等于在堆栈中放出一篇新的控件来存局部变量
sub esp , 0cch
push ebx
push esi
push edi
lea edi , [edi-0cch]
mov ecx , 33h
mov eax , 0cccccccch
rep stos dword ptr[edi];串写入
;然后做函数里应该做的事,ebp+12是第二个参数,ebp+8是第一个参数,ebp+4是函数返回地址
;恢复ebx,esi,edi,esp,ebp,最后返回
pop edi
pop esi
pop ebx
mov esp , ebp
pop ebp
ret
;此函数无返回值,如有返回值,放入eax中,调用者再到eax中获取
就先写到这,改天再写点。
- 天书夜读学习笔记一
- 天书夜读学习笔记一
- 天书夜读-1,笔记
- 天书夜读 第一章笔记
- 天书夜读-4——笔记
- 天书夜读-12——笔记
- 天书夜读 第二章 笔记
- 天书夜读-2、3——笔记
- 天书夜读(1)--Windows内核编程系列读书笔记(一)
- 天书夜读-5~10,泛读了
- 天书夜读【汇编反C语言】
- 天书夜读:入手篇 熟悉汇编
- 最近关注学习文本分类——天书般的ICTCLAS分词系统代码(一)
- 天书夜读:从汇编语言到Windows内核编程
- 天书夜读:从汇编语言到Windows内核编程
- 从自己的角度比较《天书夜读》和《寒江独钓》
- 天书夜读----第二章:思考与练习
- 天书笔记(1)---逆向C基础
- 解决 xdebug 57% waiting for xdebug session 的好方法
- 悟透JavaScript(转贴)
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区收藏
- Computer Science Conference Rankings 转过来防止遗忘
- 常量函数、常量引用参数、常量引用返回值[C++]
- 天书夜读学习笔记一
- mapinfo 的WOR文件转换成mapx的GST文件
- 传智播客——数据库之ORACLE(二)
- 值和传引用、传地址的区别是什么?
- c++重点知识
- 查端口的占用情况
- 《人性的弱点》
- 有关 JavaScript 的 10 件让人费解的事情
- C和C++语言学习总结(一)