标签: disassembly

事实检查:.NET应用程序对反编译有多脆弱?

我在MSMobiles.com博客上发现了这篇帖子,其中包括以下内容:

.Net在很多方面都很棒,但对于商业应用呢?没门!任何人都可以查看您的源代码.高端混淆器可以提供很多帮助,但任何坚定的黑客都会在不到一天的时间内修复您的代码.尽管花费1000美元用于反盗版和混淆工具,但我从悲伤的经历中知道这一点.

然后说明如何在.NET中开发商业Windows Mobile应用程序:

准备好延迟1天,之后您的竞争对手将复制您的功能,并在Skymarket中使用相同的功能放置自己的应用程序

对于那些熟悉.NET的人:这是真话还是废话?这个问题是否以某种方式特定于Windows Mobile,还是适用于Windows上的.NET?这对我来说似乎很令人惊讶,因为我知道微软在.NET中编写了大量自己的客户端软件(许多供应商用Java编写昂贵的应用程序,显然存在相同的问题),而且他们看起来很奇怪IP可能很容易被窃取.

.net decompiling disassembly

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

linux反汇编程序

我如何从划痕中为linux编写一个简单的反汇编程序?有没有可以使用的库?我需要一些"正常"的东西.

linux assembly disassembly

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

在IDA Pro上安装脚本

在网络上我看到IDA Pro的"脚本"引用,但无法解决如何为IDA Pro 4.9免费版本加载或安装它们.

我该怎么做呢?特别是我希望使用PE脚本.

scripting reverse-engineering ida disassembly

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

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

在Win32 Release模式下在VC ++ 2010中查看准确的反汇编的最佳方法是什么?

我正在编写程序集级别的优化代码,并且需要确保C ++编译器可以在Release-Mode下正确使用它。

我曾经能够在VS 2002中使发布模式程序在断点处中断(并在逐步执行时显示原始反汇编),但是我不记得我是如何工作的。VS 2010是否有任何可能允许这种情况发生的选项?

c++ assembly breakpoints break disassembly

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

ASM启动过程隐藏

我有一个已编译的C++控制台应用程序,它显示为一个小黑窗口.现在我想反汇编应用程序并添加代码以隐藏进程启动.也许你可以帮我找到api电话,或者你能解释一下这是怎么回事.我目前使用的Debuger是OllyDBG,但我也熟悉IDA和WDASM32.

谢谢!

console winapi masm nasm disassembly

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

内联函数调用推理

所以我正在对编译器做一些尝试(我在C++'职业'中就是这一点)并且我注意到调用_rotl直接编译/汇编; 通过这种方式,我的意思是代替执行a的程序集call,(虽然只有2个)操作码似乎直接在调用的地方剪切/粘贴.

这背后的原因是什么?我相信这个术语是"内联函数",但我可能会弄错.

c++ assembly disassembly

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

在哪里可以找到GCC组件输出中调用的过程的汇编代码?

我一直在玩GCC的汇编输出开关:

gcc -S -c helloworld.c
Run Code Online (Sandbox Code Playgroud)

helloworld.c:

#include <stdio.h>

int main(void){
    printf("Hello World!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

helloworld.s:

    .file   "helloworld.c"
    .section    .rodata
.LC0:
    .string "Hello World!"
    .text
    .globl  main
    .type   main, @function
main:
.LFB0:
    .cfi_startproc
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset 6, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register 6
    movl    $.LC0, %edi
    call    puts
    movl    $0, %eax
    popq    %rbp
    .cfi_def_cfa 7, 8
    ret
    .cfi_endproc
.LFE0:
    .size   main, .-main
    .ident  "GCC: (Debian 4.7.2-5) 4.7.2"
    .section    .note.GNU-stack,"",@progbits
Run Code Online (Sandbox Code Playgroud)

在输出helloworld.s文件中,我注意到汇编命令输出"Hello World!" 文字很简单:

call puts …
Run Code Online (Sandbox Code Playgroud)

c linux assembly gcc disassembly

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

如何确定目标文件中指令的开始和结束?

所以,我一直在尝试编写模拟器,或者至少了解其中的工作原理.我对汇编有很好的把握,特别是z80和x86,但我从来没有真正理解对象文件(或者我的情况下,.gb ROM文件)如何指示指令的开始和结束.

我正在尝试解析每条指令的操作码,但我发现它并不像每条指令后都有换行符.那么这是怎么发生的呢?对我来说,它看起来像一堆字节,无法分辨操作码和操作数之间的区别.

z80 emulation disassembly

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

PE文件中没有.BSS

这是简短的控制台应用示例

static char buffer[4096];
int main() {
    for(int i=0;i<4096;i++) {
        buffer[i] = 1234;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,编译器生成的'exe'文件应该包含.bss部分来存储'buffer'变量.

我正在使用Tiny C Compiler,结果文件不包含对.bss的任何引用.

DOS Header
Magic number:                    0x5a4d (MZ)
Bytes in last page:              144
Pages in file:                   3
Relocations:                     0
Size of header in paragraphs:    4
Minimum extra paragraphs:        0
Maximum extra paragraphs:        65535
Initial (relative) SS value:     0
Initial SP value:                0xb8
Initial IP value:                0
Initial (relative) CS value:     0
Address of relocation table:     0x40
Overlay number:                  0
OEM identifier: …
Run Code Online (Sandbox Code Playgroud)

windows assembly disassembly portable-executable

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