吾爱汇编论坛

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 1784|回复: 92

[原创逆向图文] 汇编笔记【滴水逆向】

  [复制链接]

  离线 

升级   80%

二进制研究猿 发表于 2022-3-6 12:31 | 显示全部楼层 |阅读模式


                   【滴水逆向】汇编笔记



第一课(课程概要):
1. 高级语言—(编译器)—>汇编语言—(编译器)—>机器语言
2. 不是语言变得强大了,而是编译器变得强大了
3. c和c++的关系:相比C语言,对于c++来讲,编译器替我们做的事情更多了;C语言是学好c++的基础
4. 程序员的“Chain of contempt”(无恶意,仅供一乐)
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_13,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


5.学习汇编可以了解程序的本质


第二课(进制):
为什么要学习进制:计算机只认识二进制,也就是0和1,为了更好地学习计算机,我们首先要深入理解什么是进制
学习进制的障碍:总是以十进制为依托去考虑其他进制,需要运算时也总是先转换成十进制(仅仅是因为我们对十进熟悉,所以才转换);每一种进制都是完美的,想学好进制首先要忘掉十进制,也要忘掉进制之间的转换
进制的定义:N进制的定义:由N个符号组成,逢N进1;例如
?
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_15,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

第三课(进制运算):
八进制运算:
2+3=5         2*3=6         4+5=11         4*5=24         277+333=632         276*54=20250

八进制加法表:
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

八进制乘法表:
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

进制总结:每种进制都是完美的,它自身就是一个完整的体系,可以直接做运算
计算机为什么使用二进制:计算机时需要电的,电路只有两种状态:1真(通电) 0假(未通电)
计算机中存储的任何文件、接收的指令都是由0和1组成的,例如我们可以查看一个【*.exe应用程序】:
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_11,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

16进制是二进制的简写形式:
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
?


第四课(数据宽度):
1双字(DoubleWord)=2字(Word)=4字节(Byte)=32位(bit)  
存储范围:   字节:0--0xFF    字:0--0xFFFF 双字:0--0xFFFFFFFF
如果要存储的数据超过最大宽度,那么多余的数据将被丢弃[index]


第五、六课(无符号数和有符号数&&原码反码和补码):
无符号数:不存在负数,直接2进制转十进制
有符号数:正数和无符号数编码规则一样,负数以补码的形式在计算机中存储
编码规则:不同的文件有不同的编码规则:例如给你一串二进制数:你首先要问这一串二进制数存储的是什么(数值、文本、图像、音频、视频、还是应用程序?),如果是数字,再问是有符号还是无符号
原码:最高位为符号位,其余各位为其数值本身的绝对值
反码:正数:反码与原码相同;负数:符号位为1,其余位对原码取反
补码:正数:反码与原码相同;负数:符号位为1,其余位对原码取反加1

第七课(计算机不会做加法):
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
?


逻辑运算:【与(and)】{1+1=1}、【或(or)】{1+0=1}、【非(not)】{~1=0}、【异或(xor)】{两数不同时为1,同时为0}
左移运算[shl(<<)]:各二进制位全部左移若干位,高位丢弃,低位补零
右移[A:shr(>>)或B:sar(>>)]:各二进制位全部由移若干位,低位丢弃,高位A:(补零)或B:(补符号位)

第八课(通用寄存器):
计算机如何做加法:
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


第九课(汇编环境搭建):
学汇编不是为了写代码,而是为了理解程序的本质
利用工具:Olldbg或x64dbg

第十课(通用寄存器):
存读数据速度:CPU>内存>硬盘
32位通用寄存器:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI
MOV指令:mov 立即数,寄存器   或      mov 寄存器,立即数

? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


第十一课(内存):
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_19,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


内存地址:内存太大没法起名字,所以只能用编号,这个编号又称为内存地址
内存地址的5种形式
PTR DS:[立即数]

PTR DS:[reg]

PTR DS:[立即数+reg]

PTR DS:[reg+reg*{1,2,4,8}]

PTR DS:[reg+reg*{1,2,4,8}+立即数]

第十二课(数据的存储模式):
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
第十三课(常用汇编指令):
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_16,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_6,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_6,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
???
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_6,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
?? ?
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_5,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_6,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
?
77b501ae893f4b4d885fff1872e31088.png

                               
登录/注册后可看大图
??? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


EFL:标志寄存器:其中第十位(DF)为0时,ESI和EDI运算完成后加1/2/4;第十位(DF)为1时,ESI和EDI运算完成后减1/2/4;
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

?
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_10,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_11,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??




第十四课(堆栈):
什么是堆栈:就是一块内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用;和数据结构中的堆栈无关
堆栈使用时先从大地址开始用,当使用完,如果再继续使用时,会发生堆栈溢出
结合ollydbg查看堆栈
ESP:栈指针寄存器
修改EIP的值:JMP,CALL;CALL与JNP区别:call在修改EIP值的同时,还把CALL指令下一行的地址存到堆栈中
RET指令:栈顶指针加4,把原来栈顶指针中的值取出来放到EIP中
第十五课(拓展篇:反调试之Fake8):

单步步入(F7)和单步步过(F8)
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_18,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

第十六课(汇编中的函数):

函数就是一系列指令的集合,为了完成某个会重复使用的特定功能
如何执行一个函数:JMP  或  CALL
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
一般来讲,返回值存到EAX中

第十七课(堆栈平衡):

如果要返回父程序,则当我们在堆栈中进行堆栈操作的时候,一定要保证在RET这条指令之前,ESP指向的是我们压入栈中的地址
如果通过堆栈传递参数了,那么在函数执行完毕后,要平衡参数变化导致的堆栈变化
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_19,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??

第十八课(ESP寻址):

1.使用寄存器传递参数

2.使用堆栈来传递参数
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


第十九课(EBP寻址、JCC指令):

1.
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??


2.
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??
? watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQUnlronlhajlsI_nmb0=,size_20,color_FFFFFF,t_70,g_se,x_16.jpg

                               
登录/注册后可看大图
??



评分

参与人数 29HB +32 THX +6 收起 理由
侠客行 + 1
sihh + 1 + 1
zsr849408332 + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
sherry5566 + 1 + 1 &lt;span class=&quot;text2Link&quot;&gt;[吾爱汇编论坛&lt;a target=&quot;_blank&quot;&gt;52HB.COM&lt;/a&gt;]-吃水不忘打井人,给个评分懂感恩!&lt;/span&gt;.
一蓑烟雨 + 1
逆君 + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
瀧tz + 2
bnjzzheng + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
szukodf + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
菜鸟上路 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
playboy + 2
十月 + 2
河图 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
longge188 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
无影无踪 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ch_1943 + 1
crosssss + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
成丰羽 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
temp + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
ldljlzw + 1
让IP飘一会 + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
king51999 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
绝版小胖 + 1
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
tko2002 + 1
fogang + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   16%

DzOqvIoNAW 发表于 2022-3-6 12:31 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   97.5%

dUMBfkIv 发表于 2022-3-6 14:53 | 显示全部楼层


看着很不错,回复一个看看
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   58.7%

YKkUuXp10 发表于 2022-3-6 16:03 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   58%

lckgqYZoNb 发表于 2022-3-6 16:06 | 显示全部楼层


谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  在线 

升级   60%

fyh505099 发表于 2022-3-6 16:09 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   72%

JAtx 发表于 2022-3-6 16:09 | 显示全部楼层


每天都能学到新知识,赞!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   26%

cmxub 发表于 2022-3-6 16:11 | 显示全部楼层


感谢楼主的热心分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   54.35%

uYE05 发表于 2022-3-6 16:28 | 显示全部楼层


感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM

  离线 

升级   57.25%

PbE35648 发表于 2022-3-6 16:28 | 显示全部楼层


谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编论坛(www.52hb.com)所发布的破解补丁、注册机、逆向教程、逆向文章等,包含但不限于上述内容,仅限用于学习和研究目的,不得用于非法途径或商业行为。否则,一切后果请用户自行承担。本站内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如果您喜欢某程序,请购买正版,支持正版,获得正版优质服务。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@iCloud.com
站长微信:SharkHeng


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编论坛 ( 京公网安备11011502005403号 , 京ICP备20003498号 )

GMT+8, 2022-5-22 22:22 , Processed in 0.261032 second(s), 80 queries .

Powered by Discuz!

吾爱汇编论坛 www.52hb.com

快速回复 返回顶部 返回列表