Android虚拟机:Dalvik
Dalvik和ARTDalvik 虽然android平台使用java语言开发,但是android程序却不是运行在java的虚拟机上。它是由google公司专门为android平台设计一个虚拟机,用于运行android程序 Android 运行环境主要指的Dalvik虚拟机技术,也就是安卓虚拟机DVM。Android中的所有Java程序都是运行在DVM上的,每个Android应用进程对应着一个独立的Dalvik虚拟机实例并在其解释下执行。DVM没有遵循Java虚拟机规范,不能直接执行Java的.class文件,而是执行.dex文件。它使用的是寄存器架构而不是JVM中常见的栈架构。其中.dex(Dalvik Executable)文件是通过.class文件转化而来,安卓使用Java语法编写应用程序,可以直接使用大部分的Java API等。 虽然DVM也是用Java编程语言,Dalvik虚拟机和一般JAVA虚拟机(Java VM)并不兼容,他们两个的区别是JVM标准执行的是.class的字节码(bytecode ),而是DVM执行的是其专有的(.dex)执行文件。在编译过程中,J...
Android逆向基础之apk文件:apk文件目录结构
apk文件认识APK文件其实是zip格式,但后缀名被修改为apk。我们修改ZIP后缀名方式可以看到内部的文件结构,或者用压缩工具直接解压 apk文件目录结构 AndroidManifest.xml 这里的AndroidManifest.xml就是源代码中的AndroidManifest.xml编译后所得到的文件。AndroidManifest.xml是安卓应用程序的全局配置文件,该文件保存了apk的包名,版本信息,sdk版本,Activity ,Service, Boardcast Receiver, Content Provider等应用组件的配置信息。还有程序所需要的权限也是在AndroidManifest.xml这个文件中声明的。 classes.dex 虽然Android开发的源语言是java,但是Android应用程序却不在标准的java虚拟机上运行。Google为Android平台专门设计了一套用于运行Android程序的虚拟机,这就是Dalvik虚拟机(Dalvik Virtual Machine)。而classes.dex就是运行在Dalvik虚拟机上的可...
MySQL数据库:用户相关操作
安装mysqlhttps://www.runoob.com/../images/mysql/mysql-install.html mysql的存储引擎查看引擎语句 show engines; 查看所有的引擎 SHOW VARIABLES LIKE 'default_storage_engine'; 查看当前默认引擎 12345678910111213141516171819202122232425262728293031323334353637383940存储引擎 -- 存储数据的方式一张表 数据 表的结构 索引(查询的时候使用的一个目录结构)Innodb存储引擎 mysql5.6之后的默认的存储引擎数据和索引存储在一起 2个文件 数据索引\表结构数据持久化支持事务 : 为了保证数据的完整性,将多个操作变成原子性操作 : 保持数据安全支持行级锁 : 修改的行少的时候使用 : 修改数据频繁的操作支持表级锁 : 批量修改多行的时候使用 ...
MySQL日常命令笔记:查看日志和配置文件位置
mysql的sql语句查看日志和配置文件位置配置文件root@8cebc228cfea:/# mysql –verbose –help|grep -A 1 ‘Default options’Default options are read from the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 日志https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html MySQL常见的日志类型包括: 错误日志(error log,https://dev.mysql.com/doc/refman/8.0/en/error-log.html) show variables like ‘%log_error%’; 二进制日志(binary log) 慢查询日志(slow query log,https://dev.mysql.com/doc/refm...
Redis日常命令笔记:Redis命令
redis命令命令使用推荐参阅:https://developer.aliyun.com/article/531067#cc1 1.【推荐】 O(N)命令关注N的数量例如hgetall、lrange、smembers、zrange、sinter等并非不能使用,但是需要明确N的值。有遍历的需求可以使用hscan、sscan、zscan代替。 2.【推荐】:禁用命令禁止线上使用keys、flushall、flushdb等,通过redis的rename机制禁掉命令,或者使用scan的方式渐进式处理。 3.【推荐】合理使用selectredis的多数据库较弱,使用数字进行区分,很多客户端支持较差,同时多业务用多数据库实际还是单线程处理,会有干扰。 4.【推荐】使用批量操作提高效率12原生命令:例如mget、mset。非原生命令:可以使用pipeline提高效率。 5.【建议】Redis事务功能较弱,不建议过多使用Redis的事务功能较弱(不支持回滚),而且集群版本(自研和官方)要求一次事务操作的key必须在一个slot上(可以使用hashtag功能解决) 6.【建议】控制key的生命周...
Mongo日常命令笔记:group and distinct
mongo命令group and distinct12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364demo data:db.getCollection('test111').insert([{"orderID" : "30688", "region" : "CO", "customerID" : "11396783", "productID" : "13001"},{"orderID" : "30688", "region" : "CO", "customerID" : "113...
Poetry:操作步骤
poetry常用命令 init 用于初始化项目,在项目目录下生成pyproject.toml文件,需要注意:执行这个命令时,会要求你输入pyproject.toml配置文件中的常用选项。 1$ poetry init install 上面也提到过,主要用来安装配置的依赖包,同时将依赖包信息写到poetry.lock文件中(首次)。 1$ poetry install update 上面提到过,主要用于获取最新版本的依赖,同时更新poetry.lock文件 1$ poetry update add 主要用于将依赖包添加到pyproject.toml文件中,同时会安装它们。 1$ poetry add requests pendulum remove 主要用于删除已经安装的依赖包。 1$ poetry remove pendulum show主要用于列出可用的依赖包,show后面可以加上依赖包的名称,显示更详细的内容。 1$ poetry show (requests) run主要用来执行python命令,会将run之后的命令放到python环境执行。 1$ poetry...
常用的Linux命令:帮助命令tldr
常用的linux命令帮助命令tldrdudu -sh ./* | grep “G” | sort du -h –max-depth=1 -I du -ah wgetwget: -c 断点续传 -b 后台下载文件 –limit-rate=100k 限制下载速率 https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/wget.html kill端口占用lsof netstat -tunplp | grep 端口号,命令用于显示tcp,udp的端口和进程等相关情况 使用 lsof -i 命令 lsof -i:<port> lsof -iTCP lsof -iUDP 123456789101112131415- 利用 kill -9 PID 干掉目标进程## curlcurl https://blog.csdn.net/daiyu__zz/article/details/84887211 -x https://127.0.0.1:9991curl https://hungers...
几种常见的加密:学习笔记与要点整理
对称加密体制对称加密体制分为俩种: 对明文的单个位或者字节进行运算(流密码) 使用最广泛的流密码是RC4。 把明文信息划分为不同的组结构,分别对每个分组进行加密和解密(分组密码) 在分组加密算法中,有ECB,CBC,CFB,OFB这几种算法模式。 ECB-电子密码本模式 优点 容易理解,便于实现并行操作,没有误差传递 缺点 不能隐藏明文模式,如果明文重复,对应的密文也会重复,密文内容很容易被篡改 用途 适合加密密匙,随机数等短数据 CBC-秘文链接模式 优点 加密后的密文上下文关联,,明文中重复的信息也不会产生相同的密文,如果密文被篡改,或者破坏,无法完成解密还原。 缺点 不利于并行计算,如果加密过程出错,导致加密失败 用途 加密任何长度的数据;适合计算产生检测数据完整性的消息认证码 CFB-密文反馈模式 优点 隐藏明文,每一个分组的加密结果必受前面所有分组的内容影响,即使出现多次相同的明文,均产生不同的密文,分组密码转换为流模式。 缺点 不利于并行计算 用途 检查明文密文的篡改 OFB-输出反馈模式 优点 隐藏明文,...
Django的部署流程:1. 配置生产环境配置(settings):DE…
django部署流程1. 配置生产环境配置(settings):DEBUG&Secret相关信息必须调整的关键配置: DEBUG – 在生产环境中设置为False(DEBUG=False)。避免在web页面上显示敏感的调试跟踪和变量信息 SECRET_KEY – 这是用于CSRF保护的随机值 生成SECRETKEY python -c ‘from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())’ ALLOWED_HOSTS – 生产环境必须设置允许访问的域名 2. 配置生产环境配置:密钥的存储和管理 外部引用密钥 保存在系统环境变量中 利用KMS系统保存 vault https://github.com/hashicorp/vault https://www.ruoguedu.cn/post/deploy-vault-on-production-environment/ https://hvac.readthedocs....