黑客之反编译的原理及用法,windows 反编译

作者:hacker 分类:入侵网站 时间:2022-07-13 05:51:27 浏览:163

内容导读:导航目录:1、反编译原理是什么2、frontend反编译的原理是什么?求大神帮助3、请问什么是反编译,原理是怎么样的?4、黑客的原理是什么?5、反编译可以防止诈骗吗6、黑客游戏,,是用什么反编译成原代码的.....……

导航目录:

反编译原理是什么

反编译的流程,就是虚拟一个执行环境,看程序执行了那些指令,翻译成相应的语句

一般的流程是先把程序调入到数据段,虚拟运行环境,一般这分配文件头部,从纪录指令程序数据段,载入到虚拟环境中,纪录指令,遇到跳转指令,压入栈,形成树结构(看数据结构),遍历每个节点的指令。形成完整程序。

frontend反编译的原理是什么?求大神帮助

以下摘录于Delphibbs中Dr.yysun 的回答,希望对你有帮助用 Java 编程的人, 如果不想公开源程序, 就得与反编译器作斗争,必须使用反编译器,先看看别人将会如何看你的程序,再看看Obfuscators(扰乱器)的效果.JAD 是 Windows 下效果极佳的反编译器 围绕这个引擎, 有很多图形界面, 例如 FrontEnd. (我常用)JODE 是免费的 Java 反编译器和优化器. Intr@byte 是个 JBuilder 的外挂工具 (OpenTool), 使得您在 JB 中能打开 *.class 它也使用 JAD 引擎, 并限制为只反编译器类的定义部分.有些网站可以帮您反编译, 您给个 URL, 它分析出其中有多少个 applet,然后, 再反编译掉. 最后, 您想了解反编译原理, 想自己编个反编译器和扰乱器, 这里有本免费得书 . 其他到 yahoo 里找吧, 太多了.JJams_King: 扰乱器就是把 bytecode 中的类名, *** 名,变量名等变成无意义的符号。例如,以下源程序:package temp;public class HelloWorld { String helloWorld = "Hello World"; String byeWorld = "Bye World"; public static void main(String[] args) { new HelloWorld(true); new HelloWorld(false); } HelloWorld(boolean isHappy) { if (isHappy) { System.out.println(helloWorld); } else { System.out.println(byeWorld); } }}加扰后,再反编译出来是:package a;import java.io.PrintStream;public class a{ String a; String b; a(boolean flag) { a = "Hello World"; b = "Bye World"; if (flag) System.out.println(a); else System.out.println(b); } public static void main(String astring[]) { new a(true); new a(false); }}而更高级的扰乱器,还能加密字符常量和扰乱程序流。加扰后,再反编译后变成这样:package a;import java.io.PrintStream;public class a{ String a; String b; public static boolean c; a(boolean flag) { a = a("q\0041\033/\03162\005,]"); b = a("{\0308W\027V\0231\023"); if (!flag) goto 42 else 26; System.out.println(a); if (!c) goto 52 else 42; System.out.println(b); } public static void main(String astring[]) { new a(1); new a(0); } private static String a(String string) { char ach[]; int i; int j; int k; ach = string.toCharArray(); i = ach.length; j = 0; k = 0; expression 57 expression ach expression j expression 97 expression ach expression j expression 93 expression ach expression j expression 119 expression ach expression j expression 64 expression ach expression j dup 2 over 1 push [] ^ pop [] j++; k++; if (i == j) return new String(ach); expression k switchcase 1: goto 21case 2: goto 29case 3: goto 37case 4: goto 45case 5: goto 10default: goto 54 }}你想破译其中的思路可就难了 :)以上资料摘自:

请问什么是反编译,原理是怎么样的?

反编译

高级语言源程序经过

编译

变成可执行文件,反编译就是逆

过程

但是通常不能把可执行文件变成高级语言

源代码

,只能转换成

汇编程序

计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人

软件

的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的

软件产品

所使用的

思路

原理

结构

算法

、处理过程、运行 *** 等设计

要素

,作为自己开发软件时的参考,或者直接用于自己的软件产品中。

黑客的原理是什么?

熟练掌握 C语言,汇编语言

基本上黑客新手都要学到disassemble(反汇编),就是通过一个程序运行的汇编套路来分析其源代码。并用c语言进行测试。汇编要掌握到(stack,protected mode,data segmentESPEBP...),C语言(bit-field, stdcall...)

2.计算机原理

分析程序数据没有十进制,只有2进制和16进制(就是0101 0010或0xFF...),要懂得基本运算。还有big/little-endian等基本术语,会用WinHex/UltraEdit或VS的dempbin分析程序。

3. *** :TCP/IP(TCP,UDP,ICMP,DNS,IP等许多协议),会截取数据包,还有分析frame,结合telnet/ftp/c语言的socket等命令进行 *** 打劫!这部分最难最枯燥,建议看understanding TCP/IP这本书

4.系统的认知!了解Windows内部API,sockets编程,IP proxy(IPv6更好也学),真正的黑客是几乎漏不出马脚的!

这些就是基础,然后熟练掌握各种操作流程,可以强行进行telnet,或进行TCP hijack,或夺取远程sid等。。。还有很多要学,根本数不完。

推荐你看一下几本书(我看过许多书,走过弯路,这是整理后的更优选择)

1.Assembly language step-by-step

掌握汇编语言,和CPU运行机制,内存模式等

2.the C programming language

C语言的灵魂 ***

3.(C++可以了解一下)C++ from ground up或C++ premier

C++在底层其实代替不了C

4.Understanding TCP/IP

TCP/IP *** 的精髓

反编译可以防止诈骗吗

可以的。

从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具,如果对代码进行了反编译是可以提高黑客攻入的难度,可以起到反诈骗的作用。

反欺诈是对包含交易诈骗, *** 诈骗, *** 诈骗,盗卡盗号等欺诈行为进行识别的一项服务。

黑客游戏,,是用什么反编译成原代码的..希望各位大大说详细点

人工反编译,首先将机器码反汇编成汇编语言,再反编译成高级语言