问题列表 - 第2418页

Python ctypes和函数调用

我的朋友制作了一个在x86上工作的小型概念验证汇编程序.我决定将它移植到x86_64,但我立即遇到了问题.

我在C中编写了一小段程序,然后编译并objdumped代码.之后我将它插入到我的python脚本中,因此x86_64代码是正确的:

from ctypes import cast, CFUNCTYPE, c_char_p, c_long

buffer = ''.join(map(chr, [ #0000000000000000 <add>:
  0x55,                     # push   %rbp
  0x48, 0x89, 0xe5,         # mov    %rsp,%rbp
  0x48, 0x89, 0x7d, 0xf8,   # mov    %rdi,-0x8(%rbp)
  0x48, 0x8b, 0x45, 0xf8,   # mov    -0x8(%rbp),%rax
  0x48, 0x83, 0xc0, 0x0a,   # add    $0xa,%rax
  0xc9,                     # leaveq 
  0xc3,                     # retq
]))

fptr = cast(c_char_p(buffer), CFUNCTYPE(c_long, c_long))
print fptr(1234)
Run Code Online (Sandbox Code Playgroud)

现在,为什么每次运行它时这个脚本都会继续执行分段错误?

我还有一个关于mprotect和没有执行标志的问题.据说可以防止缓冲区溢出等大多数基本安全漏洞.但它使用的真正原因是什么?你可以继续写,直到你点击.text,然后将你的指令注入一个漂亮的PROT_EXEC -area.当然,除非你在.text中使用写保护

但那么,为什么到处都有PROT_EXEC?它的.text段是否被写保护不是很有帮助吗?

c python assembly ctypes x86-64

7
推荐指数
2
解决办法
3576
查看次数

如何在导出List <T>的类中数据绑定到与列表项无关的属性

以前,我有一个包含内部System.Collections.Generic.List<Item>的类(其中Item是我创建的类).包装器类提供了几个集合级属性,这些属性提供了列表中项目的总计,平均值和其他计算.我正在创建一个BindingSource围绕这个包装List<>和另一个BindingSource围绕我的类,并能够通过第一个BindingSource和包装类的集合级属性使用第二个来获取包装列表中的Items .

一个简化的例子如下:

public class OldClass()
{
  private List<Item> _Items;

  public OldClass()
  {
    _Items = new List<Item>();
  }

  public List<Item> Items { get { return _Items; } }

  // collection-level properties
  public float AverageValue { get { return Average() } }
  public float TotalValue { get { return Total() } }
  // ... other properties like this

}
Run Code Online (Sandbox Code Playgroud)

使用以这种方式创建的绑定源:

_itemsBindingSource = new BindingSource(oldClass.Items);
_summaryBindingSource = new BindingSource(oldClass);
Run Code Online (Sandbox Code Playgroud)

最近,我尝试将此类更改为派生System.Collections.Generic.List<Item>而不是保留包装 …

c# generics data-binding

4
推荐指数
1
解决办法
986
查看次数

C++中的范围和返回值

我将重新开始使用c ++并考虑变量的范围.如果我在函数内部有一个变量然后我返回该变量,那么当它返回时变量不会"死",因为它所在的范围已经结束了?

我用函数返回一个字符串尝试了这个,它确实有效.有谁能解释一下?或者至少指出一些可以向我解释的地方.

谢谢

c++ scope return-value

25
推荐指数
2
解决办法
2万
查看次数

GDI +和WPF的相对优点

Whar是GDI +和WPF之间的相对优点吗?

也有人知道开发/运行WPF应用程序所需的最低系统要求吗?

c# wpf gdi+

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

15
推荐指数
4
解决办法
4万
查看次数

7
推荐指数
1
解决办法
1048
查看次数

如何使用runhaskell增加堆栈大小?

我正在编写一些一次性的Haskell脚本来解决Project Euler的一些问题.我真的不想编译它们,因为我经常要做的改变很多,但在少数情况下我发现我的堆栈空间已经用完了.

说明runhaskell以下语法应该增加堆栈空间的文档:

runhaskell +RTS -K5M -RTS Script.hs
Run Code Online (Sandbox Code Playgroud)

这永远不会有效(在我试过的任何排列中).堆栈大小始终为8,388,608.这令人抓狂,我在Google上找不到多少帮助.

有什么建议?我究竟做错了什么?

haskell haskell-stack

10
推荐指数
1
解决办法
2401
查看次数

我可以编程的最小设备是什么?

我正在考虑比笔记本电脑更小的东西,我可以花费我的时间在上班途中做项目的欧拉问题等.

有任何想法吗?

mobile device

6
推荐指数
3
解决办法
1832
查看次数

是否可以更改RESX生成器以在生成的类上使用公共访问器?

我正在编写ASP.NET MVC应用程序并尝试使用RESX文件来存储错误消息和其他常见字符串.问题是RESX生成器构建内部类,并且不可能使用如下语法在ASP.NET HTML代码中使用它们:

<%= Resources.SomeString %>
Run Code Online (Sandbox Code Playgroud)

是否可以调整设置以使RESX生成器构建可公开访问的类和属性?

.net

4
推荐指数
1
解决办法
1752
查看次数

DataTable是否比List <T>消耗更多内存?

是否在性能方面有所折衷,在内存消耗方面有所折衷?

c# performance data-structures

10
推荐指数
2
解决办法
4552
查看次数