自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 python处理大型数据集的方法比较(pandas, polars, datatable, dask)

今天遇到了需要处理大型数据集的情况,对主流的方法自己都进行了测试。从这里,我们可发现,在速度上polars大于datatable大于pandas。

2024-04-10 19:37:41 113

原创 解决报错:from sklearn.metrics import plot_confusion_matrix

已弃用:函数plot_confusion_matrix 在 1.0 中已弃用,并将在 1.2 中删除。使用类方法之一:ConfusionMatrixDisplay.from_predictions 或 ConfusionMatrixDisplay.from_estimator。降低sklearn版本为1.2以下。

2023-12-06 10:43:06 3462 5

原创 CEC2020:能量谷优化算法(Energy valley optimizer,EVO)

能量谷优化算法(Energy valley optimizer,EVO)是MahdiAzizi等人于2023年提出的一种新颖的元启发式算法,其灵感来自关于稳定性和不同粒子衰变模式的物理原理。

2023-11-09 18:01:12 611 1

原创 手搓GoogLeNet来对CIFAR100数据集进行分类

该模块的输入是一个形状为 (batch_size, in_planes, height, width) 的张量,其中 in_planes 是输入通道数,输出是一个形状为 (batch_size, kernel_1_x + kernel_3_x + kernel_5_x + pool_planes, height, width) 的张量,其中 kernel_1_x、kernel_3_x、kernel_5_x 和 pool_planes 是四个分支的输出通道数。模型的输入特征图的深度为 832。

2023-07-26 14:12:41 448 1

原创 智能合约攻击和漏洞百科全书 Vulnerabilities----starting this section

在 Solidity 中,您可以使用低级调用,例如 address.call()、address.callcode()、address.delegatecall() 和 address.send(),也可以使用合约调用,例如 ExternalContract.doSomething( ). 低级调用永远不会抛出异常——相反,如果遇到异常,它们将返回 false,而合约调用将自动抛出。非正式地说,assert() 是一个过于自信的保镖,它保护你的合约,但在这个过程中偷走了你的汽油。然而,事实并非如此。

2023-05-30 15:20:20 549

原创 智能合约攻击和漏洞百科全书 Attacks----Reentrancy

重入(Reentrancy)是一种攻击,当合约函数中的错误允许函数交互在本应被禁止的情况下进行多次时,就会发生这种攻击。在此示例1中,黑客可以通过在 withdraw() 函数中将余额设置为 0 之前调用 transfer() 的回退函数来转移花费的资金来利用此合约。要提高合约的安全性,应该考虑添加权限控制、进行有效性检查和断言,并使用更安全的方式处理以太币的发送。失败(例如,调用者没有足够的以太币来接收),则会导致整个函数的执行被中止,无法回滚之前对。需要注意的是,这段代码存在安全问题。

2023-05-30 08:57:49 280

原创 智能合约攻击和漏洞百科全书 Attacks----Insufficient gas griefing

中继合约的作用是让用户可以通过在中继合约中发送一笔交易并签署它,而无需实际执行该交易。中继合约会接收到用户发送的交易数据,进行重放保护检查,然后将该交易转发给其他合约进行实际执行。换句话说,中继合约充当了一个代理,允许用户委托交易的执行,以解决用户无法支付 gas 费用的问题。让我们以一个简单的中继合约为例。如下所示,中继合约允许某人在无需执行交易的情况下进行交易并签署交易。执行交易的用户,即转发者,可以通过使用刚好足够交易执行的 gas 但没有足够的 gas 来使 subcall 成功来有效地审查交易。

2023-05-29 10:32:14 296

原创 智能合约攻击和漏洞百科全书 Attacks----Forcibly sending Ether to a contract

然而,有些用户可能希望禁止将以太币发送到智能合约,因为他们不希望执行合约中的任何操作。但是,不幸的是,即使用户不希望发送以太币到智能合约,仍然存在一种方法可以绕过合约的回退功能,并强制将以太币发送到智能合约。不幸的是,对于这些情况,存在一种方法可以绕过合约的回退(fallback)功能,强制发送以太币到智能合约。,这意味着无论何时有人尝试发送以太币给合约,交易都会被中止,以太币会被退回。函数,这意味着当有人向合约发送以太币时,会触发回退并中止交易,以太币会被退回给发送者。函数中的恶意操作就会被执行,因为。

2023-05-29 09:51:36 184

原创 智能合约攻击和漏洞百科全书 Attacks----DoS with (unexpected) revert

例如,您可能希望通过遍历数组来向一组用户支付费用,当然,您希望确保每个用户都得到适当的支付。这里的问题是,如果一笔付款失败,该功能将被还原,并且没有人付款。为此,将每笔付款分成自己的交易,并让收款人调用该函数。正如你在这个例子中看到的,如果攻击者从一个具有回退功能的智能合约中出价,那么他们将永远无法退还,因此,没有人可以出更高的价。如果资金被发送到由坏人创建的智能合约,这可能会有问题,因为他们可以简单地创建一个回退功能来恢复所有支付。这段代码涉及退款机制,旨在将参与拍卖的地址的退款金额发送回它们的地址。

2023-05-26 11:09:22 152 1

原创 智能合约攻击和漏洞百科全书 Attacks----Block stuffing

攻击者首先购买了一个钥匙,然后连续填充接下来的 13 个区块,即在这些区块中创建大量无意义的交易或者执行计算密集型操作,消耗大量的 gas。通过使用可验证的随机数生成机制,预先生成随机数,并在操作过程中验证随机数的有效性,可以增加块填充攻击的复杂性,使攻击者无法准确预测或操纵操作的结果。在以太坊或其他区块链上,区块产生的时间是不确定的,并且交易的确认时间也可能会受到各种因素的影响。引入可验证的随机数生成机制:在智能合约中引入一个可验证的随机数生成机制,以确保随机数的生成过程是公平且不可预测的。

2023-05-26 10:01:59 250 1

原创 智能合约攻击和漏洞百科全书 Attacks----Unbounded operations

在这种系统中,收款人发起请求,通知付款人需要支付的金额,并提供自己的支付信息。在上述问题中提到的解决方法,将每笔付款分成自己的交易,并让收款人调用该函数,涉及到拉式支付系统。也就是说,收款人主动调用智能合约中的特定函数,来请求支付自己应得的金额。这种情况下可能发生的是,恶意行为者的攻击使得区块的 gas 使用达到极限,导致正常的支付交易无法执行,同时也阻塞了其他合法交易的处理。如果区块中已经包含了恶意行为者创建的大量交易,并且这些交易消耗了大量的 gas,那么其他正常交易将无法被打包进区块,从而被阻止。

2023-05-26 09:46:36 147 1

原创 智能合约攻击和漏洞百科全书 Attacks----DoS with block gas limit

由于每一步都需要消耗 gas,当交易的 gas 使用量超过区块的 gas limit 时,交易将失败。攻击者可以利用这种方式发送大量的无限循环交易,占用区块的 gas,阻止其他有效交易的执行。高 gas 交易攻击(High Gas Attack):攻击者创建一个非常复杂和昂贵的交易,该交易需要消耗大量的 gas 才能完成。在以太坊区块链中,区块都有 gas limit。区块 gas 限制的好处之一是它可以防止攻击者创建无限交易循环,但如果交易的 gas 使用量超过此限制,则交易将失败。

2023-05-26 09:26:32 141 1

原创 智能合约攻击和漏洞百科全书 Attacks----Front-running aka transaction-ordering dependence

The University of Concordia认为抢先交易是“一个实体受益于事先获得有关即将进行的交易和交易的特权市场信息的行动过程。” 这种对市场未来事件的了解可能导致剥削。由于此问题的解决方案因合同而异,因此很难防范。可能的解决方案包括批处理交易和使用预提交方案(即允许用户稍后提交详细信息)。例如,知道将要大量购买特定代币,不良行为者可以提前购买该代币,并在超大买单价格上涨时出售该代币以获利。抢先交易长期以来一直是金融市场的一个问题,由于区块链的透明性,这个问题在加密货币市场再次出现。

2023-05-26 09:22:34 143 1

原创 Windows中VS code无法查看C++ STL容器的值 - 解决方法

我发现一个有效的解决方法,但在x64版本的Windows上安装MinGW时,虽然官方推荐MinGW版本的是x86_64的,但实践后发现如果选择安装 x86_64的, 很可能Debug时会无法看到STL容器(vecotr、map等)的具体信息,看到的是相应的内存地址~首先,你很可能用的是x64版本的Windows。

2023-05-09 20:47:23 326

原创 区块链入门2 初识以太坊 一个simple test ether faucet

让我们回顾一下我们迄今为止学到的东西:以太坊合约是控制货币的程序,运行在名为EVM的虚拟机内。它们是由一个特殊的交易创建的,该交易提交它们的字节码以记录在区块链中。只要有人将交易发送到合约地址,它就会导致合约在EVM中运行,并将交易作为其输入。作为我们的第一个例子,我们将编写一个控制_faucet_的合约。我们现在看到一个新的交易,其中合约地址是目标地址,0 ether。一分钟后,如果你刷新etherscan区块浏览器,它会向合约地址显示另一个交易,并更新0.01 ether的余额。

2023-05-08 13:37:53 334 2

原创 区块链入门1 初识以太坊 配置Metamask

领取测试币网站需要注册账号,注册流程这里就不再赘述。注册完后,复制自己的钱包地址,把钱包地址粘贴到网站的输入框中后,点击Send Me ETH并稍等片刻,我们就会看到钱包中多出了0.1 GoerliETH。因为我已经安装过了,这里显示的是remove,没有安装的话应该是install。这里的助记词建议复制到txt文件并保存到网盘,下一步会用到助记词。在拓展里面找到MetaMask,然后点击进入MetaMask。如果没有显示测试网络的话,点击添加网络,设置里把测试网络开启。注意:每24小时只能领取一次。

2023-05-08 11:53:06 1269 1

原创 在Android Studio中获取对应app包的发布版安全码SHA1和调试版安全码SHA1

获取发布版安全码SHA1:1.打开Android Studio对应的Terminal工具2.输入命令:keytool -v -list -keystore 以及keystore文件路径。如下图。keystore文件路径就是在生成APK文件自己设置。即keytool -v -list -keystore+jks文件路径(这里需要去生成对应的签名文件)3.然后点击回车,出现输入秘钥库密码的提示。如下图。根据自己之前设置的密码输入即可(若没有密码,则密码为默认的android)。在输入时会看不到输入的状态,光标会

2022-06-02 13:41:48 1167

原创 pycharm使用python语言连接mysql数据库

首先如图所示,选择Database选项点击那个+号(因为我已经连接好了,第一次链接页面会为空)选择MySQL选项进入本页面后,首先需要下载jar包,具体在Test Connection的上面(我已经下载了,所以没有提示),然后按照自己的数据填进去即可。点击Test Connection后如果显示连接成功,点击OK就行成功连接的页面# This is a sample Python script.# Press Shift+F10 to execute it or..

2022-04-27 14:48:17 1714 1

安全程序设计实验指导书2020级(1).doc

安全程序设计实验指导书2020级(1).doc

2021-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除