我在MSMobiles.com博客上发现了这篇帖子,其中包括以下内容:
.Net在很多方面都很棒,但对于商业应用呢?没门!任何人都可以查看您的源代码.高端混淆器可以提供很多帮助,但任何坚定的黑客都会在不到一天的时间内修复您的代码.尽管花费1000美元用于反盗版和混淆工具,但我从悲伤的经历中知道这一点.
然后说明如何在.NET中开发商业Windows Mobile应用程序:
准备好延迟1天,之后您的竞争对手将复制您的功能,并在Skymarket中使用相同的功能放置自己的应用程序
对于那些熟悉.NET的人:这是真话还是废话?这个问题是否以某种方式特定于Windows Mobile,还是适用于Windows上的.NET?这对我来说似乎很令人惊讶,因为我知道微软在.NET中编写了大量自己的客户端软件(许多供应商用Java编写昂贵的应用程序,显然存在相同的问题),而且他们看起来很奇怪IP可能很容易被窃取.
我如何从划痕中为linux编写一个简单的反汇编程序?有没有可以使用的库?我需要一些"正常"的东西.
在网络上我看到IDA Pro的"脚本"引用,但无法解决如何为IDA Pro 4.9免费版本加载或安装它们.
我该怎么做呢?特别是我希望使用PE脚本.
我正在编写程序集级别的优化代码,并且需要确保C ++编译器可以在Release-Mode下正确使用它。
我曾经能够在VS 2002中使发布模式程序在断点处中断(并在逐步执行时显示原始反汇编),但是我不记得我是如何工作的。VS 2010是否有任何可能允许这种情况发生的选项?
我有一个已编译的C++控制台应用程序,它显示为一个小黑窗口.现在我想反汇编应用程序并添加代码以隐藏进程启动.也许你可以帮我找到api电话,或者你能解释一下这是怎么回事.我目前使用的Debuger是OllyDBG,但我也熟悉IDA和WDASM32.
谢谢!
所以我正在对编译器做一些尝试(我在C++'职业'中就是这一点)并且我注意到调用_rotl直接编译/汇编; 通过这种方式,我的意思是代替执行a的程序集call,(虽然只有2个)操作码似乎直接在调用的地方剪切/粘贴.
这背后的原因是什么?我相信这个术语是"内联函数",但我可能会弄错.
我一直在玩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) 所以,我一直在尝试编写模拟器,或者至少了解其中的工作原理.我对汇编有很好的把握,特别是z80和x86,但我从来没有真正理解对象文件(或者我的情况下,.gb ROM文件)如何指示指令的开始和结束.
我正在尝试解析每条指令的操作码,但我发现它并不像每条指令后都有换行符.那么这是怎么发生的呢?对我来说,它看起来像一堆字节,无法分辨操作码和操作数之间的区别.
这是简短的控制台应用示例
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)