神话系列之一 C 程序不能反编译
网上流传很多C和C# 神话
我听了以后,决定打破这些美丽的神话。。给大家开开眼界,更希望能说明一个神话,。,,
解开我 最神秘的等待
C
程序怎样反编译成
C
语言的程序?
神话:无法反编译的,,只能通过汇编来解释。
详细:
C语言源程序经过编译、优化,得到目标格式,但由目标格式不能逆推得到C源码,因为目标码可能是经过优化的,谁也不能说这些优化做到了哪样的程度,因而没
有算法进行这样的逆推,所以不可能从目标格式得到C源码。
今天我反编译的是我自己写的
小东西,其实就是MSDN找的例子。
// crt_printf.c
// This program uses the printf and wprintf functions
// to produce formatted output.
#include <stdio.h>
int main( void )
{
char ch = 'h',
*string = "computer";
wchar_t wch = L'w',
*wstring = L"Unicode";
int count = -9234;
// Display integers
printf( "Integer formats:\n"
" Decimal: %d Justified: %.6d "
"Unsigned: %u\n",
count, count, count, count );
// Display decimals
printf( "Decimal %d as:\n Hex: %Xh "
"C hex: 0x%x Octal: %o\n",
count, count, count, count );
// Display in different radixes
printf( "Digits 10 equal:\n Hex: %i "
"Octal: %i Decimal: %i\n",
&
相关文档:
第二章 数据类型
一、数据类型分类
1 联合类型
2 函数类型
3 数量类型
3.1算术类型
① 基本数据类型
整型(包括char)
浮点型 ......
最近在研究操作系统,《自己动手写操作系统》上第5章讲了asm和c函数之间互调用,目的是使用c来写操作系统内核的代码,毕竟用汇编写代码还是很费时间的事。
配置Linux开发环境实在是太麻烦,要装虚拟机,还要配置老半天。于是就想能都在windows环境下实现互调用,很自然的想到了ming ......
googletest C/C++ 测试框架非常好用,介绍及下载请看 http://code.google.com/p/googletest/
//============================================================================
// 使用 googletest 测试框架
//============================================================================
// Returns n! ......
//某水王的发帖数超过总贴数的一半,找出之
int find(int *ID, int N)
{
int candidate;
int nTimes, i;
for (i = nTimes = 0; i < N; i++)
{
if (nTimes == 0)
{
candidate = ID[i];
nTimes = 1;
}
else if (candidate == ID[i])
{
nTimes++;
}
else
{
nTimes--;
......
花费了十天时间,为公司开发了一套简单的网络版的信息管理系统,功能主要有客户信息管理,员工信息管理,常用信息管理(各种信函打印、常用网址/常用电话等),公司简单的财务管理等。把一些点点滴滴的技巧在此记录下来,以备查用。
1.数据绑定。 DataReader 读取数据,用DataTable.Load(IDataReader)方法将数据加载到 DataTable ......