A. so文件可以反编译吗
反编译不可以,反汇编可以,这个网络一下你就知道了。反汇编,这没点功力肯定不行的。
如果你改不了这个so文件,要调用此so文件。那么你必须按之前工程的包名、类名、方法名来调用,也就是方法路径必须与原来的一致,因为如果不一致,native方法就不可用了,找不到。
B. C#程序反汇编后编译出现 无法显式调用运算符或访问器
反汇编出旦或姿来的库往往都把属性变成了方法,方法不团判存在就出现“无法显式调用运算符或访问器”这种错误了。
推测
this.msc.add_Error(newDScriptControlSource_ErrorEventHandler(this.OnError));
this.msc.add_Timeout(newDScriptControlSource_TimeoutEventHandler(this.OnTimeout));
这两行应该是:
this.msc.Error+=模绝newDScriptControlSource_ErrorEventHandler(this.OnError);
this.msc.Timeout+=newDScriptControlSource_TimeoutEventHandler(this.OnTimeout);
C. 汇编与反汇编
可以的,但是反编译的效果最常见的就是反编译成汇编语言,但是说你写一个C的程序已经编译程.exe文件了,然后又想用工具对.exe文件进行反编译,那么就只能反编译到汇编语言的状态,不可能反编译到C的状态,虽然现在网上有些人能反汇编成C,但是效果也不好,有很多的错误。
编译的过程是不可逆的,就好像你把猪杀了做成香肠,然后你又想把想把香肠变成猪一样。最多能把香肠又变成肉末,变成猪你听过吗?道理就这样
D. 反编译为什么不能得到源代码
因为编译器在编译时源搭嫌茄代码的一些信息丢失了(或者说换一种方式保存),
比如说自定义的函数名,变量名,在反汇编的代码中就不会出现。
说到反编译,现在做的最好知察的就是IDA
的Hex-Rays
Decompiler
插件,十分强
大,但有时反编译的代码可读性不好,常常指针套者穗指针,不过配合着汇编代码
来看还是很有参考性的
E. 反汇编能否将代码弄出来
常规意义上不能。就算勉强可以那也不会得到和原来一样的代码(比较。NET的中间语言)。
反汇编 把目标代码转为汇编代码的过程.
通常,编写程序是利用高级语言如C,Pascal等语言进行编程的,后再经过编译程序生成可以 被计算机系统 直接执行的执行文件。反汇编即是指将这些执行文件反编译还原成 汇编语言或其他 高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码 会发生很大的变化,非编程高手很难读懂。
F. 一个汇编问题,以下代码为什么不能编译,生成obj文件,请指正,谢谢!
看来,楼主是想要“直接写屏”。
程序修改如下。
可在XP的DOS窗口下,用MASM5.0编译...
assumecs:codesg,ds:datasg
;------------------------
datasgsegment
DB'w',06H;定义字符和属性
DB'e',02H
DB'l',07H
DB'c',26H
DB'o',85H
DB'm',74H
DB'e',98H
db"welcometoasm";这些就不合穗正雀适了
datasgends
;------------------------
codesgsegment
start:
MOVAX,datasg
MOVDS,AX
movbx,0b800h
moves,bx
movbx,0
movcx,6;14
s:
movax,[BX];取来字符和属性
moves:[BX],ax;直接写屏
addBX,2;每清闭次写两个字节
loops;循环6次猜早
movax,4c00h;退出
int21h
codesgends
endstart
;------------------------
程序运行后,显示如下图:
G. 请教一下,SO文件如何反编译最好是WIN环境下搭建。谢谢。
谢谢。。。以前玩过CD版的,我去找找。。。另外SO库和DLL库的逆向近似吗?貌似我查了下,我关注的这个软件转码算法网上还木有。。。是不是也有壳的说法,或者密钥?但离线阅读能实现的功能应该可以逆向,而且是不分文本、通用型转码。
H. linux 下如何将动态链接库.so进行反编译后,换编译器重新编译
程序能不能正常运行取决于程序和动态库之间的ABI是否兼容。只要ABI兼容那么编译器版本就没有影响。高版本的编译器同样可以使用低版本的ABI来生成目标代码,但这个问题要具体分析。你解决问题的思路完全不对。
I. 我使用CLASS反汇编生成的java文件重新进行编译生成JAVA文件提示出错是为什么呢
并不是所有的class都能反汇编成java文件的,尤其是那些经过obfuscation(代码混淆)的class文件,混淆器故意生成很难或者根本不可能被反汇编的程序。比如class文件中可以用java关键词作名字的变量,反汇编出来的当然就不行了,这只是混淆技术之一,有些混淆技术相当难破。
另外,反汇编出来的程序质量跟反汇编程序也很有关系,jd-gui不错,但也不是通吃的。