日志
2021.1.15-2021.1.28回家连续搞了十天卫生,虽然白天没啥时间学习,但是晚上过于放纵地玩耍,也没有学习,不能继续这样下去了
2021.1.28-2021.2.23持续颓废……
Python快速入门
注释单行注释:
12# !/usr/bin/python linux系统指定脚本使用的解释器# -*- coding=utf-8 -*- 编码方式
多行注释:
123456"""多行注释"""'''多行注释'''
输入input():从控制台获取输入的值,该值传递给变量时为字符串
1234>>> str = input('请输入一个字符串:')请输入一个字符串:123>>> str'123'
内置类型对象分类数字、字符串、列表、字典、元组、文件、集合
数字分类常见数字常量:整数(int),浮点数(float),2/8/16进制,复数,集合,小数与分数,布尔(bool)和常量
常用进制转换函数:hex()(转16进制)、bin()(转2进制)、oct()(转8进制)
数学工具表达式操作符:+、-、*、/、//、%、<<、>>、&、|、!等等
...
反调试研究
反调试之花指令花指令是一种反静态调试的手段(对于动态调试来说就没有任何用处),我们可以通过在程序的代码中添加一些不影响程序运行的垃圾数据,进而影响反汇编结果的准确性,达到程序保护的目的
花指令分类1、可执行花指令
见字知其意,即花指令在程序正常运行的时候被执行,不影响程序原有的功能
2、不可执行花指令
见字知其意,即花指令在程序正常运行的时候不会被执行,不影响程序原有的功能
花指令编写原则:保持堆栈的平衡
常用花指令汇编小知识:
1234567891011mov eax, 1 eax赋值为1pop 1 将1从栈顶弹出pop ebp 将栈顶的值弹出赋给寄存器ebppush 1 将1压入栈中push ebp 将ebp的值压入栈中add eax, 1 eax的值加1inc eax eax的值加1dec eax eax的值减1call [x] 调用地址为x的函数,call对应的硬编码为0xE8jmp x 跳转到x地址处,jmp对应的硬编码为0xE9_emit 相当于db,byte类型,1字节
以下方式均通过内联汇编实现
标签方式 ...