1)装python环境用的是vscode
最近在看python
感觉跟着下面这个链接里的还欧克
引用:
Python 基础(一):入门必备知识_Python小二的博客-CSDN博客_python基础
2)装了od,ida,学习了基本操作
引用:
【Windows 逆向】OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )_韩曙亮的博客-CSDN博客_od调试
IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口_插件开发的博客-CSDN博客_ida逆向分析反汇编工具IDA_spring_chen的博客-CSDN博客_反汇编工具有哪些【软件逆向-分析工具】反汇编和反编译工具_黑色地带(崛起)的博客-CSDN博客_软件反编译世界顶级的交互式反汇编工具——ida的使用详解_2013040212王鹏鹏的博客-CSDN博客_ida软件
3)c语言彻底放弃vscode装了n遍 QAQ
学习了upx的使用
引用:
【逆向】UPX工具使用及加壳_江湖one Cat的博客-CSDN博客_upx.exehttps://blog.csdn.net/qq_43633973/article/details/102573376?spm=1001.2014.3001.5506UPX初步使用(1)_OxRGZ的博客-CSDN博客_upx卡密https://blog.csdn.net/qq_21089297/article/details/108805173?spm=1001.2014.3001.5506CTF逆向-Upx脱壳攻防世界simple unpack_Tr0e的博客-CSDN博客_nssctf 04upx
4)配了镜像的ubuntu
5)继续复习一些汇编,看了一点点加密与解密
在汇编源程序中,数据不能以字母开头,要在ffff前面加0
段前缀
Debug中,mov al,[0]的功能是——将Ds:o存储单元的值传给AL
编译好的程序中,mov al,[o]变成了将常量0传给AL
处理办法:对策:在[idata]前显式地写上段寄存器
mov ax,2000h
mov ds,ax
mov bx,0
mov al,ds:[bx]
小结(在程序中):
mov al,[o] :(al)=0,同mov al,0
mov al,ds:[0] :(al)=((ds)*16+O)
mov al,[bx] :(al)=((ds)*16+(bx))
mov al,ds:[bx]:与mov al,[bx]相同
dw:define word定义字型数据
dw定义一个字db定义一个字节dd定义—一个双字
内存访问
字的存储
- 8086低位低地址,高位高地址。
读取数据
- DS寄存器:存放要访问的数据段地址
- [....]给出偏移地址
mov ds,1000H //error mov bx, 1000H mov ds, bx //电路不支持直接赋值给ds
- (DS):[address]
指令
- mov
- add和sub 至少有一个操作数是寄存器变量,其他操作数可以是寄存器,立即数,内存单元。
栈
- 后进先出
- 8086cpu编程可以将一段内存当做栈使用
- push入栈,pop出栈,以字为单位。(若为字节拼揍成一个字)
- ss 栈段寄存器 :存放栈顶的段地址
- sp栈顶指针寄存器:存放栈顶的偏移地址
- 栈底为高地址,入栈向低地址迈进,出栈向高地址后退。栈底不放数据。
- 代码段-》栈段-》数据段。(数据段在低地址)