c++,python,汇编语言,reverse
@TOC
计算机语言方面
c++
做了几道题,写了高精度乘法的两种形式(存储数组每位存10以内数字和每位存1000以内数字,后一种有好多细节要处理),了解了sort函数排序结构体的方法,定义一个cmp函数作为sort函数的第三个参数。
python
了解了 列表 的使用方法及相关函数的应用
.append(所添加值)
.insert(位置,所添加值)
.pop(可为空也可为位置)
del list[位置]
.sort(空为从小到大或reverse=True从大到小)
.reverse()
切片[起始位置:终止位置+1]
汇编语言
一、区分 位,字节,字。
1字节=8位
1字=2字节
16进制四位合为一位,所以每个框中是8位,一个字节,两个框为一个字单元
以int型(4字节=双字)输出0008H处的16进制值,输出为10203
以int型(4字节=双字)输出0009H处的16进制值,输出为82000102
二、通用寄存器
通用寄存器可以分区
EAX的低16位为AX
AX=AH(高8位)+AL(低8位)
B(C、D)X同样,但BP,SI,DI,SP不能分区
三、简单传送指令
1.MOV a,b
1 | a=b (a为目的操作数,b为源操作数,即把b的值赋给a) |
2.XCHG c,d
1 | 交换c,d的值,c,d可以是寄存器或存储单元,但不能都是存储单元,也不能有立即数,c,d尺寸要一致 |
3.ADD a,b
1 | a=a+b |
4.SUB a,b
1 | a=a-b |
5.INC a
1 | a+=1 |
6.DEC a
1 | a-=1 |
7.NEG c
1 | c=~c (对c取补) |
四、嵌入汇编
C语言中当要改变某数的二进制形式的某几位时(例如需要改变AX位上的值),可以嵌入汇编_asm{}。
ctf 二进制
reverse
这周主要初步学了几个工具
exeinfo pe:查壳工具
脱壳用对应的脱壳工具
od:动态分析工具(还没在做题中用过)
学脱壳时,教程中使用的是od脱壳,
什么单步跟踪法,esp定律法,一步直达法(找pop),结果我的程序就根本拖不进od。。。
吾爱破解脱壳教程
ida的patch功能:直接修改程序,但是汇编语言还没学,像输出等命令还不会用。
gdb动态调试:b设断点,r运行,n单步步过,x查寄存器内容
-------------本文结束感谢您的阅读-------------