给你个c#的程序
//开始 两个“//”是注释
using System;
public class MyExe
{
public static void Main()
{
ConsoleWriteLine("Hello,world!");
ConsoleWriteLine("这就是一个最简单的程序");
ConsoleReadLine();
}
}
//结束
将开始-结束之间的代码复制粘贴到一个文本文档中,然后另存为"D:\xxxcs",看看D盘是不是多了个xxxcs,没有就在操作一遍
生成exe方法,需要首先安装Net FrameWork20,搜一下很多
http://wwwbaiducom/swd=Net+FrameWork20&tn=antiarp_pg&bar=
安装之后系统目录下会多一个文件夹,里面是(net)程序运行的核心
例如我的(xp系统)是:
C:\WINDOWS\MicrosoftNET\Framework\v2050727
里面有个cscexe,
完整路径C:\WINDOWS\MicrosoftNET\Framework\v2050727\cscexe
开始-运行,把下面的拷进去,运行
C:\WINDOWS\MicrosoftNET\Framework\v2050727\cscexe /out:d:\xxxexe d:\xxxcs
出现的窗口自动关掉后,会在的d盘中生成xxxexe
运行xxxexe就可以看到效果了
生成dll地方法类似,把 /out:d:\xxxexe d:\xxxcs改一下
/out:d:\xxxdll /target:library d:\xxxcs
这种方式只需要安装Net FrameWork20,这应该是最简单的方法了,这种程序需要Net FrameWork20支持,也就是说别的电脑要运行xxxexe也必须安装Net FrameWork20,因此现在通用性不强,但我要说的是:这是微软的产品,微软已经在新系统中将Net FrameWork默认安装了,因此通用性只是时间问题
用交叉编译环境是可以的。
如mingw。
建议在Windows下安装mingw,然后调试。直接调用是肯定不行的。
参考我的博客:
有个 mono你可以试试,或者是利用wine来读取,不过不管怎么样都不能直接读取,但是间接的是可以的。大概的就这两种方法,你可以去wine和mono的网站看看。
应该有不少这方面的资料的
nm 命令 可以看到符号表(不是所有库都包含这些信息,因为代码在执行的时候只用地址,这些信息是调试用的,正式的版权软件不一定包含这些),其中可以看到函数名,和变量名。但是具体传入参数的类型和其他信息,其实在标准C和C++在二进制库文件中是不包括这些信息的,进栈和出栈是在编译阶段决定的。
gdb 调试so所属应用程序的执行,看它的调用函数的传入和传出。
反编译可以获得一些信息,不过过程复杂,因为你要观察汇编代码和地址之间的跳转。如果你只是开发程序的话,获得完善的信息,你只能查看手册。
但是如果你是想用某个版权软件的某个so的功能的话只能反编译分析代码了。如果你具备反编译技能的话,应该不会问这个问题了。所以别伤脑筋了。你火候到了自然都有办法了。
如果借此以营利是违法的。
欢迎分享,转载请注明来源:品搜搜测评网