小编Eid*_*nMK的帖子

在Python中解出口函数

我一直在尝试转储一组PE文件的所有导入的API函数调用。

我注意到大多数PE文件都有一组看起来很“奇怪”的导入功能。这些使我独特的函数调用数量大大增加,即使我觉得其中很多都是相同的函数调用。

经过进一步的研究,我发现这是由于名称处理所致,并且我目前正在寻找一种能够获取原始函数调用名称的解决方案(从某种意义上说,它更具可读性,也许可以减少我的数量)。唯一的函数调用)(如果可能),请使用Python而不是C ++。

我得到的一些例子:

?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ
?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PAD_J@Z
??0exception@@QAE@ABQBD@Z
??0exception@@QAE@ABQBDH@Z
??0exception@@QAE@ABV0@@Z
??1exception@@UAE@XZ
Run Code Online (Sandbox Code Playgroud)

RegDeleteValueW
RegEnumKeyExW
RegCloseKey
RegQueryValueExW
RegSetValueExW
Run Code Online (Sandbox Code Playgroud)

c++ python dllimport name-mangling

5
推荐指数
1
解决办法
295
查看次数

如何在ASP.NET中开发的Azure Web App上获取客户端的IP地址?

我开发了一个在Azure上部署为Web应用程序的Web应用程序.

我需要获取客户端的IP地址,以便我可以使用GeoIP API来获取客户端所连接的国家/地区.

所以这是我的问题,如何在发送查看主页的请求时获取客户端的IP地址?我正在使用ASP.NET MVC.

c# asp.net asp.net-mvc azure azure-web-sites

5
推荐指数
1
解决办法
1586
查看次数

格雷码算法(32 位或更少)

我最近遇到了格雷码,我一直在试图围绕用于将格雷码转换回二进制(32 位或更少)的高效算法进行思考。

num = num ^ (num >> 16);
num = num ^ (num >> 8);
num = num ^ (num >> 4);
num = num ^ (num >> 2);
num = num ^ (num >> 1);
Run Code Online (Sandbox Code Playgroud)

这是我正在谈论的代码。现在这是我的问题:

  • 这与普通代码(右移 1 和 XOR 直到mask == 0)有什么区别?
  • 为什么要专门使用 16、8、4、2、1,而不是任何其他小于 32 位的数字?
  • 如果我们反过来做,有什么区别:

    num = num ^ (num >> 1);
    num = num ^ (num >> 2);
    num = num ^ (num >> 4);
    num = num ^ (num >> 8); …
    Run Code Online (Sandbox Code Playgroud)

algorithm gray-code

2
推荐指数
1
解决办法
537
查看次数

内存释放不完全正常(节点)

我曾尝试创建了一段代码,以了解内存重新分配工作,我已经明白,对于每一个新的运营商我用,我需要删除它,我已经做了一段代码,似乎这样做,但看着任务管理器,之后我运行代码,首先它需要344KB和创建节点35.3mb后删除它们后会下降到3044Kb(3MB),而不是这是344KB的初始内存使用情况,我不知道为什么.

#include <iostream>
using namespace std;
class Node{
public:
int value;
Node *next;
Node(int value){
    this->value = value;
    next = NULL;
}
};
int main(){
system("pause");
Node *head = new Node(999999);
Node *prev = head;
for (int i = 0; i < 500000; i++){
    Node *newNode = new Node(i);
    prev->next = newNode;
    prev = newNode;
}

while (head != NULL){
    Node *toDelete = head;
    head = head->next;
    delete toDelete;
}
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
51
查看次数