能力值:
( LV4,RANK:50 )
|
-
-
2 楼
能修改汇编代码并保存,但是不能再编译了,也不存在编译的事情
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
修改之后再编译得到B.exe
修改之后直接保存就OK了...
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
你以为得到源码了啊,还编译
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
直接OD修改
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
为什么不能再编译呢?我的想法就是得不到源码,那么我就修改汇编代码来实现某些修改,再编译成可执行文件,这样可行么?如果不可行,主要的障碍在什么地方呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
障碍是你是反汇编而不是反编译。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
http://bbs.pediy.com/showthread.php?t=36474
假如他就是用汇编写的 那就是"一回事"了
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
汇编中有不少的伪指令,你“反编译”是反编译不回去的,所以不是一回事儿
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
来学习的
听楼主说得有道理啊,对反汇编代码进行修改——自己写一个主函数,把虚拟地址什么的换成变量,程序实现的功能用各自的子函数(反汇编能看到子函数名啊),中间结果也能通过调试得到,在主函数中处理好程序可能产生的所有消息——,不是可以得到程序运行的结果吗?
为什么高手都说不行呢?
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
理论上是可以通过分析、理解、逆向之后,再组建工程。
相当于借鉴A程序的内容自己编写B程序。
一般只逆关键代码,写出关键函数。
我想你不是这个意思,你的意思是直接把A弄成可编译成B的代码吧?
全部套汇编也需要Very long的时间。一般不会有人这样做。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
你看看反汇编后的代码。。处自己写的写的代码有什么区别。
反汇编后的代码都是已经经过编译器处理过的
例如,mov eax,dword ptr[401025]这样的代码你要是再编译一次是不行的,编译器并不认[401025]是什么
还有,反汇编后的代码含有很多PE文件信息,编译器都不认的。
还有很多自己找
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
[QUOTE=泥芭;718068]你看看反汇编后的代码。。处自己写的写的代码有什么区别。
反汇编后的代码都是已经经过编译器处理过的
例如,mov eax,dword ptr[401025]这样的代码你要是再编译一次是不行的,编译器并不认[401025]是什么
还有,反汇编后的代码含有很多PE文件信息,编译器都不认的。
还有很...[/QUOTE]
IDA反汇编后就会把所有地址都变成标号 所以这个问题不存在呀
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
有点难以想象 如果是个大软件 那写很久也很难保证正确 可是理论上却"那么"的可行
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
如果反编译后功能是不相同的 那OD怎么能跟踪了呢
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
那如果是高级语言的源程序呢 就不存在伪指令的问题了吧 而且IDA翻出来的汇编代码也有和伪指令功能类似的东西(貌似)
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
可以但是相当于那程序是你编的了,一般不会这样做,除非是你的水平很高
|
|
|