标签: native-code

反汇编C#:为什么DUMPBIN本机代码与Debug的反汇编有很大不同?

假设这是我的程序simpleCsharp.exe:

namespace simpleCsharp
{
    public class Program
    {       
         public static int Main(string[] args)
        {
                uint x = 0xFEFEFE;
                uint y = 0xEEEEEE;
                uint z;
                uint[] list = { 0, 1, 2, 4, 8 };
                uint[] array = { 0xA, 0xB, 0xC, 0xD };
                z = x + y + list[2] + array[1];
                z = z - (y << 1);
                return 0;           
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在Debug的Disassembly窗口中查看一个简单的C#程序的反汇编,那么本机代码输出至少是有意义的.例如,这是Debug的反汇编,其中包含Optimization:

uint x = 0xFEFEFE;
00000000  push        ebp 
00000001  mov         ebp,esp 
00000003  sub         esp,28h …
Run Code Online (Sandbox Code Playgroud)

.net disassembly native-code

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

Undersore的_.now如何运作?

它看起来不像是用JavaScript编写的.

如果你输入_now控制台,你只能得到

function now() { [native code] }
Run Code Online (Sandbox Code Playgroud)

当你试图查看一些内部工作对浏览器不可见的内置方法时,通常只能得到它.

setTimeout
=>function setTimeout() { [native code] }
Run Code Online (Sandbox Code Playgroud)

_.now完成与JavaScript引擎的"原生代码"的东西吗?

javascript browser v8 native-code underscore.js

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

SCardCreateContext内存泄漏

在某些Windows安装中,我们突然遇到了智能卡api的问题。调用SCardEstablishContext函数时似乎有内存泄漏。可以在控制台应用程序中重现该问题,其代码示例位于 http://www.pinvoke.net/default.aspx/winscard.scard建立上下文

class Program
{
    #region Win32
    // WinSCard APIs to be imported.
    [DllImport("WinScard.dll")]
    static extern int SCardEstablishContext(uint dwScope,
        IntPtr notUsed1,
        IntPtr notUsed2,
        out IntPtr phContext);

    [DllImport("WinScard.dll")]
    static extern int SCardReleaseContext(IntPtr phContext);

    [DllImport("WinScard.dll")]
    static extern int SCardConnect(IntPtr hContext,
        string cReaderName,
        uint dwShareMode,
        uint dwPrefProtocol,
        ref IntPtr phCard,
        ref IntPtr ActiveProtocol);

    [DllImport("WinScard.dll")]
    static extern int SCardDisconnect(IntPtr hCard, int Disposition);

    [DllImport("WinScard.dll", EntryPoint = "SCardListReadersA", CharSet = CharSet.Ansi)]
    static extern int SCardListReaders(
      IntPtr hContext,
      byte[] mszGroups,
      byte[] mszReaders,
      ref UInt32 pcchReaders);
    #endregion

    static …
Run Code Online (Sandbox Code Playgroud)

c# memory-leaks smartcard native-code winscard

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

这个 C++ 项目可以用 .NET Reflector 之类的工具反编译吗?

我使用 Microsoft Visual Studio 2012,我想用本机 C++ 编写一个应用程序。我不想使用托管代码 (.NET) 的原因是因为我不希望我的应用程序使用 .NET Reflector 之类的工具反编译回源代码,但如果我仍然可以使用,那就太好了我的应用程序中的 UI(CLR Windows 窗体)。

但是当我将 UI(CLR Windows 窗体)添加到我的 Win32 项目时,会弹出此消息:

信息

这是否意味着从现在开始我的所有项目都不会被编译为本机代码,并且有可能使用 .NET Reflector 之类的工具反编译整个应用程序?

或者它将是“混合”(本机代码 + 托管代码)项目蚂蚁将无法使用诸如 .NET 反射器之类的工具反编译整个应用程序,只有其中负责 UI 的部分?

PS 是的,我知道任何应用程序都可以反编译 (!!!),但我问的是基于 .NET 的应用程序的反编译工具。使用 .NET Reflector,您可以从 .NET 应用程序“取回原始源代码”。所以我的问题是,是否有可能从这个应用程序“取回原始源代码”,或者它会以某种方式“混合”代码(托管 + 本机),并且不可能将它反编译回原始代码像.NET Reflector这样的工具的源代码?

.net c++ managed-code native-code .net-reflector

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

什么最适合编写本机库并使用语言绑定在多种语言中使用它?

哪种语言(C或C++)最适合编写本机库并使用不同语言使用语言绑定(例如,使用JNI或Ruby的C扩展),为什么?

c c++ language-binding cross-platform native-code

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

高级Javascript混淆

我一直在大量研究JS混淆,开始了解所有高级概念,但我最近发现了一个混淆代码,我相信它是某种形式的"原生Javascript代码",我只是找不到任何关于这种混淆:

这是一个小提取物:

'\141\75\160\162\157\155\160\164\50\47\105\156\164\162\145\172\40'
Run Code Online (Sandbox Code Playgroud)

它被称为这样:

eval(eval('\141\75\160\162\157\155\160\164\50\47\105\156\164\162\145\172\40'))
Run Code Online (Sandbox Code Playgroud)

由于代码是另一个的工作,我在JS挑战中遇到了它我没有发布完整的代码,所以我给出的例子不起作用,但完整的代码确实有效.


所以这是我的问题: 这是什么类型的代码?我在哪里可以了解更多相关信息?


任何建议赞赏:)

javascript browser obfuscation native-code web

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

创建NDK项目时," - >"的错误基本操作数具有非指针类型"JNIEnv {aka _JNIEnv}"

我创建了我的第一个NDK项目,在屏幕上显示一些文本.我在java中的类NativeLib中使用本机方法,并在C中的类中实现.但我收到错误基本操作数' - >'具有非指针类型'JNIEnv {aka _JNIEnv}

 #include <jni.h>
 #include <string.h>
 #include <stdio.h>
 #include <android/log.h>

#define DEBUG_TAG "MY_NDK_DEMO"
JNIEXPORT jstring JNICALL Java_com_example_helloworld_NativeLib_helloWorld
  (JNIEnv * env, jobject obj) {
    return (*env)->NewStringUTF("Hello World JNI!");
}
Run Code Online (Sandbox Code Playgroud)

android native-code android-ndk

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

将 MongoDB 查询结果作为变量而不是控制台返回

在名为db_to_var.jsI的 javascript 文件中,有以下函数成功地将查询返回的数组打印到数据库test_db,到console.log(). (例如,一个名为的数据库cars有一个name描述品牌名称的关键字,例如toyota, hyunday,volvo。)。该方法使用:调用console.log("listCars function call="+listCars());并包含:

function listCars() { 
    car_and_name_grandparent = MongoClient.connect(url, function(err, db) {
        if (err) throw err;
        var dbo = db.db("testdb");

        car_and_name_parent = dbo.collection("cars").find({}, { projection: { _id: 0, name: 1} }).toArray(function(err, result) {
            if (err) throw err;
            car_and_name = result;
            db.close();

            console.log("car_and_name="+car_and_name);
            return car_and_name;
        });

        return car_and_name_parent;
    });

    return car_and_name_grandparent;
}; 
Run Code Online (Sandbox Code Playgroud)

但是,car_and_name_parent保持未定义状态,因为car_and_name正确填充的 实际上并未返回到car_and_name_parent。这让我进行了调查,并调查了:

  1. , 的文档.toArray() …

javascript return-value mongodb native-code promise

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

PHP:使用自定义函数使用native编写更少的代码:它会更快吗?

说我有一些我经常使用的东西.例如,大约90%的时间我使用

explode ($delimiter, $string);
Run Code Online (Sandbox Code Playgroud)

通常你会像这样使用它:

$string = "blah/blah/blah";
$e = explode("/", $string);
Run Code Online (Sandbox Code Playgroud)

如果我编写自定义函数,PHP会更快吗?

#reusable 
function c4($str) {
    return explode("/", $str); 
} 
$e = c4("blah/blah/blah/");
Run Code Online (Sandbox Code Playgroud)

或者也许当写为匿名函数时?

#reusable
$c4 = function($str) {
    return explode("/", $str);
};
$e = $c4("blah/blah/blah");
Run Code Online (Sandbox Code Playgroud)

我不知道如何把这个,但也许这是正确的问题:PHP'缓存'用户函数以供将来使用(在解析时)?如果是这样,当使用相同的参数时,使用本机函数和重用相同自定义函数的断点变得更有效.可能是因为可解析代码的数量较少?

刚阅读StackOverflow的建议:

"We prefer questions that can be answered, not just discussed."
Run Code Online (Sandbox Code Playgroud)

所以我真的希望这不会在讨论中结束.非常好奇地等待你的回复!

php native-code

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

如果C/C++是本地语言,那么它们如何在Mac上使用呢?

我认为本机代码是专为在特定计算机上运行而设计的代码.令我困惑的是,如何在其他平台和机器上运行C/C++?我唯一能想到的就是他们需要一个完全不同的编译器来将代码编译成特定于机器的代码.当C/C++被称为本机语言时,我感到很困惑.

c c++ native-code

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

C#Anti-Debug方法OutputDebugString无法正常工作

所以最近我一直在阅读反调试机制和我遇到的流行方法,以检查当前进程是否正在调试OutputDebugString.我已经编写了这段代码,但它没有完全按照预期工作,有人可以解释为什么或我做错了什么?

private static bool stub_OutputDebugString()
{
    uint ErrCode = 0x12A6;
    Native.SetLastError(ErrCode);
    Native.OutputDebugString("System.Core\n");
    if (Marshal.GetLastWin32Error() == (int)ErrCode)
    {
        //Debugger Detected
        return true;
    }
    else
    {
        //No Debugger Detected
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的P/Invoke签名

[DllImport("kernel32.dll", SetLastError = true)]
public static extern void SetLastError(uint dwErrCode);

[DllImport("kernel32.dll", SetLastError = true)]
public static extern void OutputDebugString(string lpOutputString);
Run Code Online (Sandbox Code Playgroud)

注意我读了如何GetLastError不应该从本机环境调用,因为值可以更改,所以我正在使用Marshal.GetLastWin32Error()

代码应该工作,但当我尝试使用windbg或任何其他调试器调试应用程序时,最后一个错误不会改变.

c# debugging pinvoke windbg native-code

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

在Java中使用本机代码的优缺点?

我正在考虑编写一个可能使用本机代码的Java应用程序(最有可能用c(++)编写,而不是汇编),我希望看到这样做的优点和缺点.我知道本机代码旨在在特定的机器/机器规格上运行,而不是由JVM运行的代码,JVM当然是虚拟机.如果我理解正确,在其本机运行的本机代码运行速度比字节码快,这是正确的吗?

基本上,如果我正在编写程序,是否值得使用本机代码进行某些计算和一些其他函数来尝试减少所需的时间和处理器的压力?如果我使用本机代码(如果我只有我的系统来编写/测试代码),是否有一种可靠的方法使其适用于几乎所有系统?

c c++ java native native-code

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

如何获取javascript函数本机代码

有没有办法在浏览器控制台中查看javascript内置函数的本机代码,这样我才能知道函数的算法效率及其实际工作原理

在此输入图像描述

javascript function native-code

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