- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我听说了Meltdown漏洞,并阅读了paper,这很困难,因为我不是母语人士,但是我决定制作一个概念验证的小型c++程序,如下所示,我想知道造成这种情况的原因代码不起作用。
我已经在AMD FX 8350八核和Intel I3处理器上对其进行了测试
/*In this code I wanted to make a PoC for the Meltdown flaw (https://meltdownattack.com/)*/
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
#include <chrono>
int secretvar = 15; //This is our "unreadable" var wich we "cannot" read but we will have the value exposed via cache attack
int x = rand() % 100; //Used later, importent that it's random
int main()
{
int arr[1000]; //We setup our array
for (int i = 0; i < 100; ++i) { //Fill it with random values
arr[i] = rand() % 10 + 1;
};
if (x == 4) { //Here I want to trigger the Out-of-Order execution so that the cpu executes the code below th if case
int c = arr[secretvar]; //before it really checks if x is actually 4. And with this, the CPU would put the cached variable "c" into
//its cache.
};
/*At this point we dont know th value of secretvar but we know that the CPU has cached some index with the
exact value of secretvar.Therefore we can now iterate over the array and how long it takes the cpu to acess the
diffrent array indexes.The cpu will be faster at acessing one specific element because it is taken from cache
and not from the memory.This index is the value of secretvar.*/
double lowest_val = 500;
int lowest_index = 0;
for (int i = 0; i < 100; i++) {
auto start = std::chrono::high_resolution_clock::now(); //start timer
arr[i]; //acess array
auto finish = std::chrono::high_resolution_clock::now();//end timer
std::chrono::duration<double> elapsed = finish - start;//calculate needed time
double e = elapsed.count();
if (e < lowest_val) {
lowest_val = e;
lowest_index = i;
}
std::cout << i << " : " << e << " s\n"; //show it to the screen
}
std::cout << lowest_index << "Was acessed fastest "<< " with a time of "<< lowest_val << "ms" << std::endl;
system("pause");
return 0;
}
最佳答案
好的,因此我意识到,如果我用汇编器对其进行编程,则此测试会更加准确。接下来我会尝试,但是在那之前我必须学习一些东西。我认为问题已经解决,但是仍然欢迎您提出有关c++程序的建议。
谢谢您的帮助
关于c++ - 在C++中融化POC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48138210/
我有一个复杂的 melt 函数需要执行。我试过逐步解决它并检查其他问题,但我很困惑! 这是我当前的数据框: 1 2 4 5 6 10 24 Userid u_
我知道,这个问题已经被问过好几次了,但我没有设法根据已经问过的问题构建我的解决方案。 DF 我有: id| country | series name | 2015 | 2016 | 2017
我正在尝试从名为 df 的数据帧创建以下名为 out 的数据帧。我有一种非常手动且缓慢的方法,但我希望它可以通过 groupby() 和 melt() 的组合来完成 import pandas as
我有一个像这样的 pandas DataFrame: df = pd.DataFrame({'custid':[1,2,3,4], ...: 'prod1':['jeans','tshirt','ja
我有这样一个数据框 NSW VIC 0 6718023 5023203 1 6735528 5048207 2 6742690 5061266 3 6766133 50
给定一个如下形式的方形 pandas DataFrame: a b c a 1 .5 .3 b .5 1 .4 c .3 .4 1 upper triangle 怎么可能?被熔化得到如
我玩 pandas 是为了适应它,我问自己是否可以在 pandas 中使用 Melt 功能而不需要太多麻烦? 我正在使用相当著名的titanic.csv数据集。 titanic = pd.read_c
我有一个关于航类的数据集,我有兴趣找出乘坐同一航类的一对乘客坐在同一排。假设所有航类中只有 Row 是唯一的,这意味着如果第 1 行在 10 号航类中被占用,那么它就不能出现在 11 号航类中。 即。
考虑这个 Pandas 数据框: df = pd.DataFrame({ 'User ID': [1, 2, 2, 3], 'Cupcakes': [1, 5, 4, 2],
这是我导入的数据框的前几行的示例(在完整数据集中,主题变量共有五个级别/因子,另外两个是代数 II 和几何)。 SID firstName lastName subject su
我有以下数据框: df = pd.DataFrame({'Date':['01/01/2021','08/01/2021'], 'a_score':[7,3],
我是一名优秀的程序员,十分优秀!