首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原创 | 工控安全之危险的工程文件

由于该SCADA组态软件是C#/nodejs共同实现的,所以通过dnspy很快就找到了该工程文件的解密算法,如下所示,可以看出这是一个被密码保护的SQLite数据库文件。...在分析出算法后,使用C#快速实现了一个加解密该工程文件的程序。该程序参数-e是加密,-d为解密。 ? 最后,成功解密出该数据库文件,这时可以看到SQLite3数据库的header。 ?...漏洞利用 通过SQLite编辑器对数据库文件进行查看和编辑,定位代码执行的地方,这部分可以插入nodejs语法的代码。 ?...使用nodejs编写一个payload插入该字段,这里的payload是弹出一个计算器来验证是否执行成功。并将修改后的工程文件重新加密回去,这样一个恶意的工程就做好了。 ?...使用钓鱼邮件恶意工程文件作为附件对工程师进行钓鱼攻击,引诱工程师打开,由于传统的邮件WAF只对一些zip/office/pe等文件进行扫描,工程文件可以很容易绕过防火墙的检测成功进行投递。 2.

66810
您找到你想要的搜索结果了吗?
是的
没有找到

Electron那些事10:本地数据库sqlite

,本节讲一下本地数据库sqlitesqlitesqlite是有名的本地数据库,在很多系统中都有应用,SQLite Home Page 当然也有nodejs的版本,一般配套和electron使用...,sqlite3 – npm 默认的版本是nodejs版本,electron内可以直接使用, 还有node-webkit版本,这个版本是给node-webkit类环境使用,例如nw框架使用 另外还有sqlcipher...filename, 当传入:memory:时,会将数据库保存在内存,不会持久化 当传入具体的文件名时,会在对应的位置创建一个文件 例如直接传入test.db时,会在根目录下创建一个test.db文件...当传入具体的文件路径时,会在对应的路径下创建文件, 这样在electron应用下,就可以结合上一节的内容,db文件创建在应用目录下了 【创建和更新表格】 创建数据库表也比较简单,使用sql创建即可...sqlite作为本地数据库 2.创建数据库 3.创建和修改表 4.插入数据,修改数据,查询数据,删除数据等 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143944

1.9K20

玩转SQLite6:使用C语言来读写数据库

上篇文章介绍了如何使用Pyhton语言来操作SQLite数据库,对于嵌入式开发,更多的是使用C/C++语言进行开发,因此,本篇介绍如何使用C语言来操作SQLite数据库。...23万多行代码(如下图),如果不需要修改源码就不用打开该文件因为打开后可能会让你的电脑卡住一会儿。...sqlite3.c添加到工程项目中,并添加头文件的包含路径: 2.2 数据插入测试 数据插入就是执行insert语句 const char *sql1="insert into SCORE values...(11,77,88,80)"; sqlite3_exec(db, sql1, NULL, NULL, &errmsg); 2.3 数据查询测试 数据插入就是执行select语句 const char...4 总结 本篇简单介绍了如何使用SQLite的C语言API中最基础的几个函数,实现对数据库的读写,后续再介绍其它常用的C语言API函数的用法。

88820

Sqlite数据库使用---基础研究

) insert:向表插入数据 update:更新表的数据 delete:删除表的数据 浏览表Table(传说中的读表) select:查询表的数据 为了更直观的感受sqlite的命令语法,直接使用...注意,为了看起来简单明了,上述语句我添加了换行,所以直接复制粘贴是不可以的,老老实实自己敲吧 当然,我在创建表之前,已经使用sqlite3 testDB.db创建过数据库了,所以目前表存在于testDB.db...数据库中了 1sqlite> .tables 2COMPANY DEPARTMENT worker 如果你想要再看一眼自己的create创建表语句,可以使用.schema worker命令..., 5 age int not null, 6 address char(50) not null, 7 wage real); 增加数据insert 向表插入数据有两种方式 向表插入某些特定列的数据...col1=data1,col2=data2… where [conditions]; 比如,第二行对象的name更新为android,第二行对象的age更新为25 1sqlite> update worker

1.3K00

笨办法学 Python · 续 练习 39:SQL 创建

这也意味着数据插入,并使用表和插入来链接表。由于我们需要一些表和一些数据来完成其余的 CRUD(增删改查),我们开始学习如何在 SQL 执行最基本的创建操作。...例如,如果person包含一行id=20,pet有一行id=98,然后假设这个人拥有这个宠物,你会将person_id=20, pet_id=98插入person_pet关系(表)。...在接下来的几个练习,我们实际插入这样的数据。...在你喜欢的搜索引擎搜索“sqlite3 数据类型”,然后阅读 SQLite3 文档的数据类型。记录你可以使用什么类型,以及其他看起来很重要的东西。我们稍后会介绍。...插入你自己和你的宠物(或像我这样的虚拟宠物)。 如果将上一个练习数据库更改为没有person_pet表,则使用该模式创建一个新数据库,并将相同的信息插入数据库

89920

Python SQLite 基本操作和经验技巧(一)

文章目录 1.插入单行数据 2.插入多行数据 3.判断sqlite是否存在某个表,不存在则创建 4.在SQLite数据库如何列出所有的表和索引 5.sqlite避免重复插入数据 6.sqlite3时游标的使用方法...入门操作 创建数据表 插入两条数据 选择(select) 修改(update) 删除(delete) 连接对象方法: 游标对象方法: 7.数据库连接对象 8.使用游标查询数据库 9.判断cursor的结果是否为空...数据库如何列出所有的表和索引 在一个 C/C++ 程序(或者脚本语言使用 Tcl/Ruby/Perl/Python 等) 你可以在一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有...cursor只能用一次,即每用完一次之后记录其位置,等到下次再取的时候是从游标处再取而不是从头再来,而且fetch完所有的数据之后,这个cursor将不再有使用价值了,即不再能fetch数据了。...conn.commit() 完成插入并且做出某些更改后确保已经进行了提交,这样才可以这些修改真正地保存到文件

5.1K30

基于Python的SQLite基础知识学习

官网介绍SQLite是一个进程内库,它实现了一个自包含的、无服务器的、零配置的事务性SQL数据库引擎(官网:https://www.sqlite.org/)。...与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是被集成在用户程序SQLite遵守ACID,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法。...它作为嵌入式数据库,是应用程序,如网页浏览器,在本地/客户端存储数据的常见选择。它可能是最广泛部署的数据库引擎,因为它正在被一些流行的浏览器、操作系统、嵌入式系统所使用。...添加 D:\sqlite3 PATH 环境变量,最后在命令提示符下,使用 sqlite3 命令,显示如下结果: D:\>sqlite3 SQLite version 3.25.3.0 2018-11...您也可以使用 C 风格的注释,以 "/*" 开始,并扩展至下一个 "*/" 字符对或直到输入结束,以先到者为准。SQLite的注释可以跨越多行

1.5K20

从一个todo应用来学习deno

什么是deno Deno 是一个简单、现代且安全的 JavaScript 和 TypeScript 运行时,它使用 V8 并内置于 Rust,它是由 NodeJS 创始人 开发的一个新的 JS 运行库...__INITIAL_STATE__; __INTIAL_STATE__该数据将由服务器以全局变量的形式呈现页面上。客户端将使用它进行初始化,然后删除全局以允许对其进行垃圾收集。...服务端 服务器使用Oak作为 HTTP 接口,使用deno-sqlite作为数据库。...deno-sqlite 不绑定外部 sqlite 库——它使用编译为 WebAssembly 的 SQLite 版本,可以直接由 Deno 的运行时使用。...在server/routes.ts,根路由一段实时重载代码插入客户端,“/livereload”端点处理 websocket 连接。每当服务器重新启动时,客户端断开连接并尝试重新连接。

57920

Python内置数据库SQLite使用指南! ⛵

图片使用Python内置库SQLite,可以方便地完成建表、插入数据、查询数据等数据库操作,也可以配合pandas进行灵活使用!高效工具库get!...在本篇内容,ShowMeAI将带大家一起来了解,如何基于 Python 环境连接到数据库、创建表、插入数据,查询数据,以及与 Pandas 工具库搭配使用。...在 Python 很简单,我们只需导入sqlite3工具库并使用.connect函数,函数的参数是数据库名称,在本例为students.db。...图片 创建表接下来我们可以在连接的数据库创建一个表,并将数据插入其中。在创建表之前,我们需要创建一个游标 cursor(用于建立连接以执行 SQL 查询的对象),我们将使用它来创建表、插入数据等。...,作为值存储在数据库

2.8K92

iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例

本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据。然后再把操作SQlite数据库常用的方法进行一个封装。...因为本实例要对数据库的数据进行modify(修改)操作 ,在iOS系统上呢,为了安全起见,在Bundle数据库资源是不允许进行数据的插入修改和删除操作的。...如果对数据库进程insert, update, delete等操作,那么需要在打开数据库之前把Bundle数据库拷贝沙盒中(每个App都有自己的沙盒,在没有越狱的机器上,App只可以访问自己的沙盒...在这个方法,先去沙盒中查看是否有该数据库,如果有就直接打开。如果没有就从Bundle数据库资源复制沙盒中,然后再从沙盒中打开。你要知道在Bundle是无法去更改数据库的数据的。...{ 7 8 //数据库文件复制沙盒中 9 NSFileManager *fileManager = [NSFileManager defaultManager]; 10

1.8K60

python访问数据库

一:SQLite 1.1.Sqlite数据库简介   SQLite是一个嵌入式的数据库,他的数据库是个文件。   SQLite本身是c语音写的,所以经常被集成各种应用程序。   ...python就内置了SQLite,所以python使用SQLite不需要安装任何东西,直接进行使用。   ...1.2使用SQLite数据库 python内置的与mysql交互的方法如下: #导入SQLit3 import sqlite3 #连接sqlite3数据库数据库文件是test.db,如果文件不存在会自动在当前目录创建...把一个表用python的数据结构来表示的话,可以用一个list表示多行,list的每行是个tuple。如下用id和name的user表。...表的: user_id = Column(String(20), ForeignKey('user.id'))   当我们查询一个User对象时,该对象的books属性返回一个包含若干个Book

2K30

SqlAlchemy 2.0 中文文档(一)

该引擎通常是一个全局对象,仅为特定数据库服务器创建一次,并且使用 URL 字符串进行配置,该字符串描述它应该如何连接到数据库主机或后端。 为了本教程,我们将使用内存SQLite 数据库。...### 发送多个参数 在提交更改的示例,我们执行了一个 INSERT 语句,似乎我们能够一次多行插入数据库。...### 发送多个参数 在 提交更改 的示例,我们执行了一个 INSERT 语句,其中看起来我们能够一次多行插入数据库。...发送多个参数 在提交更改的示例,我们执行了一个 INSERT 语句,看起来我们能够一次性向数据库插入多行数据。...': 'Spongebob Squarepants'} 执行语句 调用该语句,我们可以一行插入user_table

10910

SQLite3 笔记

SQLite insert 插入一行: 插入一组: 使用select结果插入 多行插入新表: 多行插入新表,一步到位: 非常有用的临时表: sqlite update 更新一条记录: update ... Bobka'; Error: UNIQUE constraint failed: foods.id sqlite> 多行插入新表: sqlite> create table foods2 (id int... foods2; count(*)   ---------- 416        sqlite> 多行插入新表,一步到位: sqlite> create table foods3 as select...插入行时的 unique 约束,如果在定义为 unique 的字段插入重复值,SQLite 会停止并报错。...TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。 BLOB 值是一个 blob 数据,完全根据它的输入存储。 视图 视图即虚拟表,也称为派生表。

2K30

【16】进大厂必须掌握的面试题-100个python面试

如何在python中注释多行? 回答:多行注释出现在多行。所有要注释的行都以#开头。您也可以使用非常好的 快捷方式注释多行。...什么是负索引,为什么要使用它们? 回答: Python的序列已编入索引,并且由正数和负数组成。正数使用“ 0”作为第一个索引,使用“ 1”作为第二个索引,过程继续进行。...如果您使用SQLite作为数据库,则数据库将是计算机上的文件,名称应为完整的绝对路径,包括该文件的文件名。 如果您未选择SQLite作为数据库,则必须添加密码,主机,用户等设置。...Django使用SQLite作为默认数据库,它将数据作为单个文件存储在文件系统。...如果您确实有数据库服务器-PostgreSQL,MySQL,Oracle,MSSQL-并希望使用它而不是SQLite,请使用数据库的管理工具为Django项目创建一个新数据库

16.2K30

CC++ 通过SQLiteSDK增删改查

SQLite作为一款嵌入式关系型数据库管理系统,一直以其轻量级、零配置以及跨平台等特性而备受青睐。...而作为一款开源项目,SQLite采用了公共领域授权,可以在商业和非商业项目中免费使用。...; 使用时只需要将sqlite3.h与sqlite3.c文件导入项目中并使用#include "sqlite3.h"即可,无需做其他配置,图中的sqlite3.dll是动态库,sqlite3.exe则是一个命令行版本的数据库可在测试时使用它...tail: 用于存储未使用的 SQL 语句的指针。 sqlite3_prepare_v2 函数用于 SQL 语句编译成一个 SQLite 语句对象(prepared statement)。...database.db表名为LySharkDB读者可以使用数据库工具打开该表,其结构如下所示; 插入数据测试 创建数据库后,接着就是插入数据测试,插入时可以使用insert_data,如下代码项数据库插入

27310

在云函数中使用真正serverless的SQL数据库sqlite

在云函数中使用真正serverless的SQL数据库sqlitecloud.tencent.com/developer/article/1984526之前在云函数里一直调用云开发数据库,虽然延迟有点不稳定也忍了...最近有一个需求连续对数据库进行一系列的操作,云开发数据库的性能抖动一下就被放大了,函数经常性的运行超时,这就不能忍了,因为数据量本来也不算大,动起了用nodejs的嵌入式数据库的歪心思。...测试了一下sql.js,还是很容易上手的,不过做完内存的写操作以后,要手工export文件而不是自动维护的。如果担心丢数据就要不停的export,感觉有点……过。...res) })) } await Promise.all(promises).then(()=>{statement.finalize()}) console.log("插入...一个解决方案是读写分离不同的scf,限制写的scf上限只能一个,这也容易出现写瓶颈。

1.3K20
领券