小编mmc*_*ole的帖子

是否可以在C#中执行x86汇编序列?

继续我的逆向工程教育我经常希望能够复制部分x86汇编代码并从我选择的高级语言中调用它进行测试.

有没有人知道从C#方法中调用x86指令序列的方法?我知道这可以使用C++完成,但我很好奇是否可以在C#中完成?

注意:我不是在谈论执行MSIL指令.我在谈论执行一系列原始x86汇编指令.

c# assembly

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

优化Lucene性能

优化Lucene性能的各种方法有哪些?

我应该使用缓存API来存储我的lucene搜索查询,以便节省再次构建查询的开销吗?

lucene lucene.net

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

单元测试时"单位"应该是什么?

今天在Proggit上,我正在阅读一篇题为" 为什么单位测试是浪费时间 " 的提交评论帖.

我并不是真正关心这篇文章的前提,而是关于它的评论:

问题的根源在于商业软件项目中的大多数代码"单位"都是微不足道的.

更改单位的大小,直到它不再是微不足道的?无论如何,谁将代码单元定义为单个函数或方法!

好吧,我合作的一些人想要将一个单元定义为单个功能.这完全是愚蠢的.我最喜欢的"单元"定义是:可以有效测试的最小代码片段.

我们是否花了太多时间来模拟一些对象并测试一些简单的代码并没有真正添加任何有价值的东西?

单元测试时"单位"应该是什么?功能级别测试是否过于细化?

tdd unit-testing

24
推荐指数
3
解决办法
2779
查看次数

在您的应用程序中实现插件的设计模式?

允许和实现应用程序的插件系统的标准方法是什么?

在我的上一个应用程序中,我为他们必须实现的所有插件创建了一个简单的界面.然后我在apps目录中加载所有程序集,并抛弃任何不实现该接口的程序集.

接口中的一个方法是DoWork()方法,该方法定期在所有已加载的程序集上调用,以执行插件可能具有的任何操作.

什么是"适当"的插件系统方式?你刚刚为插件创建了一个接口吗?你应该定期在所有插件中调用特定方法吗?有更复杂的方式吗?


编辑:

感谢Matt Hamilton对System.Addin命名空间的引用.这很可能是我实现插件的方式.但是,我仍然对插件体系结构一般感到好奇,并且不介意一些关于它们应该被设计的最佳方式的背景知识,以及如何在加载后如何调用它们等等.

.net plugins design-patterns

21
推荐指数
3
解决办法
1万
查看次数

在C++中返回对象列表的最佳方法?

我用C++编程已经有一段时间了,来自python之后,我穿着直筒夹克感觉太棒了,好吧,我不会咆哮.

我有几个函数充当"管道",接受列表作为输入,返回另一个列表作为输出(基于输入),

这是概念,但在实践中,我std::vector用来表示列表,这是可以接受的吗?

更进一步,我没有使用任何指针,所以我std::vector<SomeType> the_list(some_size);用作变量,并直接返回,即return the_list;

PS到目前为止一切都还好,项目大小很小,这似乎并没有影响性能,但我仍然希望得到一些输入/建议,因为我觉得我在用C++编写python.

c++ arrays memory-management

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

为什么<u>邪恶而<strong>和<em>不是?

嗯,我知道它不是邪恶的,只是在语义上不那么漂亮<strong>而且<em>对吗?

然而,随着<b>越来越多的语义<strong><i>作为<em>,为什么没有一个语义双<u>

造型:

所以有一个CSS样式的文本装饰:下划线<u>,但是没有一个font-weight:加粗<strong>已经?这样<em>也是如此.

在语义上:

<strong>什么是语义?强烈强调文字? <em>什么是语义?强调文字?任何根本不同的东西互相排斥?不.为什么不能有另一种强调文本的方法?要知道,喜欢的方式<u>做,并弥补了它语义双太-我想这只是<strong><em>已经做好之前的所有主要浏览器中实现<b>,并<i>成为已废弃.

我知道,现在它正式成为标准,你只需要坚持下去.或者请你说:有没有令人信服的理由让人<u>看不见?

html css

21
推荐指数
4
解决办法
6968
查看次数

利用写作有哪些先进和现代资源?

我已经阅读并完成了两个逆转:逆向工程黑客的秘密:剥削的艺术.他们都以自己的方式发光,但我仍然觉得其中的很多技术和信息在某种程度上已经过时了.

当臭名昭着的Phrack文章,粉碎堆栈的乐趣和利润,写于1996年,就在我认为计算机安全"黄金时代"之前.

在随后的几年中编写漏洞相对容易.C和Assembly中的一些基本知识是执行缓冲区溢出和在受害者计算机上执行某些任意shell代码所需的全部内容.

说得轻一点,事情已经得到了很多更复杂.现在,安全工程师必须应对地址空间布局随机化(ASLR),数据执行保护(DEP),堆栈Cookie,堆Cookie等等.写入漏洞的复杂性至少上升了一个数量级.

你不能在今天发现的教程中运行大多数缓冲区溢出攻击事件而不用一堆标志来编译来关闭现代保护.

现在,如果你想编写一个漏洞利用程序,你必须设法关闭DEP,用你的shell代码喷洒堆数百次并尝试猜测shellcode附近的随机内存位置.更不用说当今使用​​的托管语言的普遍性,当涉及到这些漏洞时,它们更加安全.

我希望将我的安全知识扩展到为十年之久的系统编写玩具漏洞.我无法找到有助于解决面对我在上面概述的所有保护措施时编写漏洞利用问题的资源.

什么是更先进和流行的论文,书籍或其他资源,致力于应对为现代系统编写漏洞的挑战?

security exploit

21
推荐指数
1
解决办法
2241
查看次数

算法总结所有组合的数字列表

我有一个数字列表,我想加起来所有不同的组合.例如:

  • 数字为1,4,7和13
  • 输出将是:


1+4=5
1+7=8
1+13=14
4+7=11
4+13=17
7+13=20
1+4+7=12
1+4+13=18
1+7+13=21
4+7+13=24
1+4+7+13=25
Run Code Online (Sandbox Code Playgroud)

是否有一个公式来计算不同的数字?

algorithm

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

如何在不将IQueryable暴露给我的应用程序的其余部分的情况下编写一个干净的存储库?

所以,我已经阅读了所有关于是否将IQueryable暴露给你项目的其余部分的问题所在的问题(见这里这里),我最终决定我不想要将IQueryable暴露给我的模型以外的任何东西.因为IQueryable与某些持久性实现有关,所以我不喜欢将自己锁定在其中的想法.同样,我不确定我对调用链中的类进一步修改不在存储库中的实际查询的感觉有多好.

那么,有没有人有任何关于如何编写一个干净简洁的存储库而不这样做的建议?我看到的一个问题是,我的存储库将从大量方法中爆炸,我需要过滤掉我的查询.

有一堆:

IEnumerable GetProductsSinceDate(DateTime date);  
IEnumberable GetProductsByName(string name);  
IEnumberable GetProductsByID(int ID);
Run Code Online (Sandbox Code Playgroud)

如果我允许传递IQueryable,我可以很容易地拥有一个看起来像这样的通用存储库:

public interface IRepository<T> where T : class
{
    T GetById(int id);
    IQueryable<T> GetAll();
    void InsertOnSubmit(T entity);
    void DeleteOnSubmit(T entity);
    void SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果你没有使用IQueryable,那么像GetAll()这样的方法并不实用,因为延迟评估不会发生.我不想只返回10,000条记录,以后再使用其中的10条.

这是什么答案?在Conery的MVC店面中,他创建了另一个名为"服务"层的层,该层从存储库接收了IQueryable结果,并负责应用各种过滤器.

这是我应该做的,或类似的东西?让我的存储库返回IQueryable但是通过将其隐藏在一堆过滤器类(如GetProductByName)后限制对它的访问,这将返回像IList或IEnumerable这样的具体类型?

iqueryable repository repository-pattern linq-to-sql

19
推荐指数
1
解决办法
4936
查看次数

单调性和启发式的可接受性之间有什么区别?

我正在阅读我的AI教科书,我很好奇启发式的单调性和可接受性之间的区别(我知道它们不是互相排斥的).

据我所知,一个可接受的启发式只是意味着你可以确保获得解决方案的最短路径(如果存在的话).

我正在努力的是单调属性的概念.有人可以用我可能理解的方式向我描述这个吗?

同样,我如何确定给定的启发式是否是单调/可接受的?本书中给出的一个例子是8件式滑动拼图.我正在考虑的一种启发式是不合适的瓦片,直观地我可以说我知道它是可以接受的,但我没有正式的方式来显示它是否是可接受的/单调的.

computer-science artificial-intelligence heuristics

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