欢迎来到皮皮网网站!

【php单页源码】【mybatis返回结果源码】【spring源码工程注释】lemon 源码

时间:2024-12-29 18:59:30 来源:屏幕广播 源码

1.用Python开发一个搜题神器
2.第二届“祥云杯” WP-第三部分| WHT战队
3.scoop install dark安装失败?
4.哪些动词后加to do
5.sqlite怎样利用查询结果来创建新表?

lemon 源码

用Python开发一个搜题神器

       开发搜题神器旨在提供更实用的解题思路,弥补了单纯识别文字的不足。通过有道智云提供的拍照搜题服务API,可以实现批量搜题的功能。首先,需要在有道智云上创建实例、php单页源码应用,并获取应用ID和密钥。对于API的调用,需要遵循特定的参数生成方法和要求。

       开发过程包括:

       - **API调用准备**:创建实例、应用、获取应用ID和密钥。

       - **代码开发**:主要分为三个部分:

        1. **界面开发**:使用python3开发,包含界面、界面逻辑和OCR搜题方法的封装。

        2. **逻辑处理**:通过`QuestionClass.py`调用搜题方法,定义`Question`类,`start_ocr()`方法负责搜题并保存结果。

        3. **OCR封装**:`OcrQuestion.py`中封装了请求搜题API的方法,`connect()`方法执行搜题操作并返回json格式结果。

       - **结果处理**:从API获取的mybatis返回结果源码json数据通过特定方法解析、整理,并保存到html格式中。

       - **效果展示**:通过运行示例代码,可以展示搜题结果,包括数学题搜索和历史题搜索。

       - **总结**:有道智云的API文档清晰,搜索范围广泛,能自动识别学科并提供相关题目,展示效果良好。适合用于web项目中提供高效的解题帮助。

       项目源代码可访问:[github.com/LemonQH/OcrQ...](github.com/LemonQH/OcrQ...)

第二届“祥云杯” WP-第三部分| WHT战队

        Rev_Dizzy

       EXP:

       链接: pan.baidu.com/s/1bdWuig... 提取码: g8f8

        lemon

       EXP:

        Secrets_Of_Admin操作内容:

       首先打开链接如下:

       源码中有admin的密码

       登录,是一个内容生成的共功能

       审计代码,先看这个POST内容生成功能路由

       content我们可以控制输入,输入的内容被写入在/api/files/一个文件中,名称可由传入checksum控制

       filename、checksum、username均可控,那么就可以利用可控制的变量重新写入内容,限制是IP是.0.0.1

       那么大致思路就是用content构造xss,然后就会去访问/api/files传三个参数写入到数据库种,接访问/api/files/id得到返回的spring源码工程注释内容

       不过这里对content有一些防范XSS的机制,过滤了一些关键字。需要想办法bypass

       这里是Express的框架,includes()的检测对数组不起作用

       所以使用传入数组形式即可绕过,有点类似PHP中的一些绕过方法

       最终构造payload,payload如下:

       访问/api/files/1下载

       成功进行了任意文件读取,接着根据源码中的提示读取/files/flag即可得到flag

       其实使用payload在burp里跑一下也可以得到答案,这是比赛的时候截取的当时做出来的,结果又使用上面的方案发现也能出答案:

scoop install dark安装失败?

       1 概述

       作为一名使用 win 的开发者,搭建开发环境往往是一件比较痛苦的事,需要从网上下载各种软件,在电脑上配置不同软件运行环境,对软件进行各种设置,不仅耗时,而且容易出现各种问题。搭建的环境还会存在下面一些问题:

       安装大量程序造成路径污染。安装和卸载比较麻烦。开发环境不能迁移,重装系统或者换电脑需要重新搭建开发环境。软件版本不好控制。为了解决上面这些问题,我们可以使用 WSL+Docker+Scoop 搭建开发环境,spark源码测试单元取代通过图形界面安装软件和 VMware 安装 Linux 环境的传统方式。

       WSL 是适用于 Linux 的 Windows 子系统, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上。

       Scoop 是 Windows 的命令行安装程序,可以让我们从命令行以最小的安装量安装程序, 它消除了安装界面和安装程序造成的路径污染,它安装和卸载软件只需一行命令就可以完成,它还可以随意切换软件的版本。

       一个完整的开发环境组成:首先使用 WSL 搭建一个 Linux 环境,然后在 Linux 环境里安装 Docker 应用,使用 Docker 来安装一些常用软件,比如数据库、web 环境等,Scoop 则是在本机上安装一些开发用到的软件,比如 jdk、maven、idea 等。WSL 和 Scoop 都是西班牙离中国源码比较容易备份和还原的,这两个搭建好了,我们利用备份还原可以快速在另一台机器上搭建同样的一套环境,下面是搭建环境的具体流程。

       2 WSL

       2.1 WSL 安装

       使用 WINDOWS 键 + R,输入 winver,检查 win 版本,确保内部版本号是 . 以上,否则更新 win 到最新版本。

       

       2. 以管理员身份打开 PowerShell 并运行下面命令:

       dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

       dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

       

       3. 重新启动计算机。

       4. 下载 Linux内核更新包[1],然后安装。

       5. 将 wsl2 设置为默认版本, 以管理员身份打开 PowerShell 并运行下面命令:

       wsl --set-default-version 2

       

       6. 安装 Ubuntu . LTS, 打开 Microsoft Store[2],搜索 Ubuntu . LTS[3] 安装, 安装完成后打开 Ubuntu . LTS, 等候几分钟会提示设置用户名和密码,如果不设置用户名和密码直接关闭窗口则默认以 root 登录,这里我们直接关闭窗口,不设置用户名和密码。

       

       7. 然后重新打开 Ubuntu . LTS 就会进入 Ubuntu . LTS了,我们也可以在 powershell 使用 wsl 这个命令进入 Ubuntu . LTS。

       2.2 WSL 配置

       WSL 每次启动后,windows 都会给它分配一个随机的 IP 地址,这样是不利于我们访问 docker 里的服务的,为了解决这个问题,我们可以创建一个脚本文件 wsl2-ip.bat来给 wsl 分配一个固定的 IP,在每次启动 wsl 后用管理员权限运行这个脚本,文件内容如下:

       @echo off

       setlocal enabledelayedexpansion

       :: set wsl2 ip

       wsl -u root ip addr | findstr "...2" > nul

       if !errorlevel! equ 0 (

       echo wsl ip has set

       ) else (

       wsl -d Ubuntu-. -u root ip addr add ...2/ broadcast ... dev eth0 label eth0:1

       echo set wsl ip success: ...2

       )

       :: set windows ip

       ipconfig | findstr "...1" > nul

       if !errorlevel! equ 0 (

       echo windows ip has set

       ) else (

       netsh interface ip add address "vEthernet (WSL)" ...1 ...

       echo set windows ip success: ...1

       )

       pause

       其中 ...2 表示 Linux 的 IP 地址, ...1 表示主机的 IP 地址。

       有时会遇到 Ubuntu . LTS 无法连接网络,这个非常重要,我们可以运行下面命令解决:

       sed -i '4d' /etc/resolv.conf

       sed -i '3a\nameserver 8.8.8.8' /etc/resolv.conf

       sed -i '4a\nameserver ...' /etc/resolv.conf

       2.3 Ubuntu 配置

       2.3.1 替换镜像源

       1. 备份 sources.list 文件,运行下面命令:

       mv /etc/apt/sources.list /etc/apt/sources.list.bak

       2. 创建 source.list 文件,运行下面命令:vim /etc/apt/sources.list

       3. 然后在文件里添加下面内容,下面源任选其一即可。

       # 清华源

       # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

       deb /ubuntu/ focal main restricted universe multiverse

       # deb-src /ubuntu/ focal main restricted universe multiverse

       deb /ubuntu/ focal-updates main restricted universe multiverse

       # deb-src /ubuntu/ focal-updates main restricted universe multiverse

       deb /ubuntu/ focal-backports main restricted universe multiverse

       # deb-src /ubuntu/ focal-backports main restricted universe multiverse

       deb /ubuntu/ focal-security main restricted universe multiverse

       # deb-src /ubuntu/ focal-security main restricted universe multiverse

       # 预发布软件源,不建议启用

       # deb /ubuntu/ focal-proposed main restricted universe multiverse

       # deb-src /ubuntu/ focal-proposed main restricted universe multiverse

       # 阿里源

       deb /ubuntu/ focal main restricted universe multiverse

       #deb-src /ubuntu/ focal main restricted universe multiverse

       deb /ubuntu/ focal-updates main restricted universe multiverse

       #deb-src /ubuntu/ focal-updates main restricted universe multiverse

       deb /ubuntu/ focal-backports main restricted universe multiverse

       #deb-src /ubuntu/ focal-backports main restricted universe multiverse

       deb /ubuntu/ focal-security main restricted universe multiverse

       #deb-src /ubuntu/ focal-security main restricted universe multiverse

       deb /ubuntu/ focal-proposed main restricted universe multiverse

       #deb-src /ubuntu/ focal-proposed main restricted universe multiverse

       #网易源

       deb /"]

       }

       3 Scoop

       3.1 Scoop 安装

       1. 以管理员权限打开 PowerShell 。

       2. 自定义用户软件和全局软件安装位置,运行下面命令:

       $env:SCOOP='D:\Softwares\Scoop\LocalApps'

       [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

       $env:SCOOP_GLOBAL='D:\Softwares\Scoop\GlobalApps'

       [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

       

       3. 配置安全策略以及安装 Scoop,运行下面命令:

       Set-ExecutionPolicy RemoteSigned -scope CurrentUser

       Invoke-Expression (New-Object System.Net.WebClient).DownloadString('域名,查询对应的 IP 地址。

       

       3. 配置 C:\Windows\System\drivers\etc\hosts文件,在修改前赋予 hosts 文件读写权限。

       

       

       

       4. 修改 host 文件内容如下,第一列是查询出来的ip地址,第二列是其对应的域名,中间有个空格。

       

       5. 保存后重新运行安装命令。

       Invoke-Expression (New-Object System.Net.WebClient).DownloadString('/chawyehsu/dorado

       scoop bucket add Ash /Ash/Scoop-Ash.git

       scoop bucket add pleiades /jfut/scoop-pleiades.git

       scoop bucket add Scoop-Apps /ACooper/scoop-apps

       scoop bucket add scoop-zapps /kkzzhizhou/scoop-zapps

       scoop bucket add lemon /hoilc/scoop-lemon

       scoop bucket add raresoft /L-Trump/scoop-raresoft

       

       4. 如果软件仓库添加失败,还是因为网络的原因,大家可以把这些仓库 fork 到自己的码云账户下,然后再添加。

       5. 使用 aria2 来加速软件的安装:

       scoop install aria2 -g

       scoop config aria2-max-connection-per-server

       scoop config aria2-split

       scoop config aria2-min-split-size 1M

       如果想关闭 aria2,可以运行 scoop config aria2-enabled false命令。

       3.4 Scoop 常用命令

       # 搜索app

       scoop search <应用名>

       # 检查哪些软件有更新

       scoop status

       # 版本切换

       scoop reset <应用名>@<版本切换>

       # 禁止某app更新

       scoop hold <应用名>

       # 更新所有app

       scoop update

*

       # 安装app

       scoop install <应用名>

       #全局安装app

       scoop install -g <应用名>

       #安装extras软件源下的app

       scoop install extras/<应用名>

       # 卸载app

       scoop uninstall <应用名>

       # 卸载全局安装的app

       scoop uninstall -g <应用名>

       4 总结

       开发环境软件的安装与配置到这里就完成了,利用上面这些软件,你可以快速搭建 Java、Go、C++、Python等开发环境。

       参考资料

       [1]Linux内核更新包: /store/apps/9n6svws3rx

       [4]IP地址查询网站: /

哪些动词后加to do

       1、get to do sth. 设计做某事

       You get to do what you want. 

       ä½ å¯ä»¥åšä»»ä½•ä½ æƒ³åšçš„事。

       2、be used to do sth. 被用来做某事

       If necessary X-rays and blood tests will also be used to aid diagnosis 

       å¦‚有必要,还要进行X光检查和验血以帮助诊断。

       3、be supposed to do sth. 理应做某事,应该做某事

       If you were a lemon, you would not be supposed to dwell on the sweetness of watermelon.

       å¦‚果你是一只柠檬,就不该老是盯着西瓜的甜。

       4、allow to do sth. 允许某人做某事

       Does not allow to do multiple semisynchronous notification query! 

       ä¸å…è®¸å¤šé¡¹åŠåŒæ­¥é€šçŸ¥æŸ¥è¯¢ï¼

       5、add to do 补充做某事

       Some of the items you attempted to add to source control do not exist on disk and could not be added. 

       ç£ç›˜ä¸Šä¸å­˜åœ¨æ‚¨è¯•å›¾æ·»åŠ åˆ°æºä»£ç ç®¡ç†ä¸­çš„某些项,未能添加这些项。

sqlite怎样利用查询结果来创建新表?

       当我们讨论sqlite时,如何利用查询结果创建新表是一个关键点。若要解答这一问题,我们需对sqlite的内部运作有深入理解。以《教父》中的名言作为引子,表明了慷慨与个人情感的联系,这里我们则将慷慨理解为对知识的热爱与分享。在忙碌的生活中,徒步成为了一种放松方式,尽管心中仍有未解之症结,但户外的风景与人情带来了一丝慰藉。工作与生活并重,自我成长与进步是追求的目标。

       在没有担任团队领导(TL)后,内心可能有失落感,但这也促使了对sqlite源码的探索。学习规划与安排工作,使思路更加条理化,这是一种自我提升的过程。同时,享受生活与做好工作并行不悖。

       近期的更新较为缓慢,原因在于深入研究sqlite源码,理解其核心部分,例如VBE与树结构的组织。我们采用情景分析的方法,从创建表开始,梳理创建表的流程,进而理解VBE的运行流程和数据存储方式。sqlite在解析SQL语句时使用了名为lemon的解析器与生成器,这一细节在知乎上有详细介绍。

       无需深入解析词法分析的细节,重要的是理解如何从输入的SQL语句跳转到功能实现,通过查看解析器的工作方式。让我们一起探索,从创建表的实现开始。

       创建表的关键SQL语句是:

       sql

       CREATE TABLE PERSON(ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL);

       选择这一语句是因为它能展示不同数据类型的处理,并保持简单。在处理输入时,函数process_input负责逐行处理,直至完成语句。在函数执行过程中,我们关注到runOneSqlLine,这是将SQL语句翻译为sqlite3_stmt并执行的关键步骤。这一过程涉及sqlite3_prepare_v2、sqlite3LockAndPrepare、sqlite3Prepare、sqlite3RunParser、sqlite3Parser等函数。

       解析SQL语句的核心在于一个名为yyParser的结构,它构建了一个符号表,用于标识SQL语句。搜索关键词“create table”导向了关键代码片段,揭示了创建表函数的调用过程。关注sqlite3StartTable与sqlite3EndTable,理解它们在创建新表记录中的作用。这些函数负责在内存中构建新的表表示,尤其在“CREATE”和“TABLE”出现时被调用。在创建表结束时,sqlite3EndTable()完成构建过程。

       创建表的实现涉及函数调用和信息填充,确保新表记录正确初始化。理解这一过程是解答如何利用查询结果创建新表的关键。关注细节,如参数传递与函数逻辑,对于深入学习sqlite源码至关重要。

更多相关资讯请点击【探索】频道>>>