小编Dav*_*own的帖子

没有布尔检查验证许可证信息?

我目前正在使用一个简单的XML文件,其中包含许可证信息以及数据的签名和公钥.到目前为止,这种方法运作良好.但是,我看到一个相当大的安全漏洞......

当我的ASP.NET MVC应用程序启动时,它会验证许可证并相应地设置"ValidLicense"bool属性.在每个请求期间,将检查此属性,如果许可证无效,则会显示错误消息.

正如您所猜测的那样,无论许可证的有效性如何,都无法阻止有能力的用户简单地修改我的程序集以将"ValidLicense"设置为true.我知道这可以用于几乎任何应用程序,但使用.NET程序集似乎非常容易.

有什么方法可以阻止这种情况发生,或者至少使破解许可证验证程序变得困难一些?

如果可能的话,我宁愿远离汇编加密和混淆系统.如果您觉得它们足够好以保证成本和额外的头痛,请继续建议它们.

c# asp.net-mvc licensing

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

如何改进这个平方根方法?

我知道这听起来像是家庭作业,但事实并非如此.最近我一直对用于执行某些数学运算的算法感兴趣,例如正弦,平方根等.目前,我正在尝试编写用C#计算平方根的巴比伦方法.

到目前为止,我有这个:

public static double SquareRoot(double x) {
    if (x == 0) return 0;

    double r = x / 2; // this is inefficient, but I can't find a better way
                      // to get a close estimate for the starting value of r
    double last = 0;
    int maxIters = 100;

    for (int i = 0; i < maxIters; i++) {
        r = (r + x / r) / 2;
        if (r == last)
            break;
        last = r; …
Run Code Online (Sandbox Code Playgroud)

c# algorithm math optimization performance

5
推荐指数
2
解决办法
7284
查看次数

为什么有些.NET项目在名称中使用了N前缀?

可能是一个愚蠢的问题,因为我认为N代表".NET",尽管我可能是错的.我对这个命名约定的开始感兴趣.

例子:

NHibernate
NLog
NCover
NDepend
Ninject(我意识到这应该是"ninja"的一个游戏,但它仍然适合)

.net naming-conventions

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

表达树

我对表达式树的理解是:

表达式树是表达式的内存表示,如算术或布尔表达式.表达式存储在已解析的树中.因此我们可以轻松地转换为任何其他语言.

Linq to SQL使用表达式树.通常在LINQ to SQL查询中,编译器将其转换为已解析的表达式树.它们作为T-SQL语句传递给Sql Server.Sql server执行T-SQL查询并将结果发送回去.这就是执行时的原因LINQ to SQLIQueryable<T>得不到IEnumetrable<T>.因为IQuerybale包含

public IQueryable:IEnumerable
{

   Type Element {get;}
   Expression Expression {get;}
   IQueryaleProvider Provider {get;}
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. Microsoft使用Expression树来玩LINQ-to-Sql.我可以使用表达式树来增强代码的不同方法.

  2. 除了LINQ to SQL,Linq到amazon,谁在他们的应用程序中使用了表达式树?

  3. Linq to Object返回IEnumerable,Linq to SQL返回IQueryable,LINQ to XML返回什么?

c# asp.net expression-trees

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

在Reflector中打开XNA Xbox 360程序集

我想看看Xbox 360和Windows XNA程序集之间的差异.我知道360运行.NET Compact Framework,我认为Reflector可以读取CF程序集,但是当我打开它们时,所有方法都是空白的,并且没有显示内部类.

这是故意完成的,还是Reflector的限制?有没有其他方法来看看Xbox 360 XNA程序集如何工作?

.net xna reflector compact-framework xbox360

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

当我想要一个共享库时,GCC输出一个可执行的ELF文件

我正在尝试使用i686-elf交叉编译器在Cygwin中构建一个共享库.代码很简单:

int add(int a, int b) {
    return a + b;
}

void _init() {
    add(3, 4);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令进行编译:

i686-elf-gcc -fPIC -shared -nostdlib core.c -o libcore.so
Run Code Online (Sandbox Code Playgroud)

这应该是一个共享对象,对吧?但GCC会输出一个警告_start,指出无法找到符号,这是可执行文件的入口点,而不是共享对象.此外,readelf说如下:

$ readelf -a libcore.so
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
  ...
  Type:                              EXEC (Executable file)
  ...
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

c gcc shared-libraries elf cross-compiling

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

如何在Visual Studio之外使用Visual C++的代码模型?

我想构建一个工具,它接受一组C/C++头和宏定义,并输出可见类型,函数,变量和宏的列表,最好是完整的类型信息.起初,我考虑过使用Clang API,但我主要想在Windows SDK头上使用这个工具,我可能需要对它们进行预处理,让Clang正确地解析它们.Visual Studio中的C++解析器已经提取了我需要的信息,所以如果我可以使用它就会很好.

是否可以在不编写Visual Studio扩展的情况下执行此类操作?

c++ visual-studio

5
推荐指数
0
解决办法
64
查看次数

如何使用 importlib 加载带有自定义全局变量的 Python 模块?

我正在尝试用 Python 构建一个小型构建系统,为我的 C++ 项目生成 Ninja 文件。它的行为应该类似于CMake;也就是说,bldfile.py脚本定义规则和目标,并可选择通过调用 递归到一个或多个目录bld.subdir()。每个bldfile.py脚本都有一个对应的bld.File对象。当bldfile.py脚本执行时,bld全局应该被预定义为该文件的bld.File实例,但仅限于该模块的范围

此外,我想以某种方式利用 Python 的字节码缓存,但该.pyc文件应该存储在构建输出目录中,而不是存储在脚本__pycache__旁边的目录中bldfile.py

我知道我应该使用importlib(需要 Python 3.4+ 就可以),但我不知道如何:

  1. 使用自定义全局变量加载并执行模块文件。
  2. 重用字节码缓存基础设施。

任何帮助将不胜感激!

python python-module python-importlib

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

当dumpbin出现在大于文件本身的文件偏移量时,它是如何读取导出表的?

我正在写一个小的PE读取器,所以我在我的测试应用程序旁边运行dumpbin以确认正确读取了值.到目前为止它所做的一切,除了导出表.

我正在测试的文件是一个DLL.我的应用程序以字节数组的形式读取文件,并将其传递给我的PE读取器类.这些值与dumpbin输出的值一致,包括RVA和导出数据目录的大小.

        E000 [     362] RVA [size] of Export Directory
Run Code Online (Sandbox Code Playgroud)

问题是,字节数组的大小只有42,496.你可以想象,当我的PE阅读器尝试在E000(57,344)阅读时,我得到了一个IndexOutOfRangeException.但是,dumpbin没有这样的问题,并且读取导出目录就好了.是的,整个文件确实被读入字节数组.

这怎么可能?

.net c# bytearray pe-exports dumpbin

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

为什么Direct2D和DirectWrite不使用传统的COM对象?

我正在使用C#中的一个小型2D游戏引擎,并决定使用Direct2D和DirectWrite进行渲染.我知道有Windows API Code Pack和SlimDX,但我真的很喜欢从头开始编写接口.我试图在没有托管C++的情况下这样做,但Direct2D和DirectWrite似乎没有使用传统的COM对象.它们定义了派生自的接口IUnknown,但似乎没有办法从C#与COM互操作实际使用它们.有IID d2d1.h,但没有CLSID.

当然,我是COM互操作的新手,所以也许我只是缺少一些东西.有人可以对这种情况有所了解吗?

.net c# com direct2d directwrite

4
推荐指数
2
解决办法
6331
查看次数