首页
社区
课程
招聘
[旧帖] [求助]反汇编后再编译的问题 0.00雪花
发表于: 2009-11-23 12:26 6686

[旧帖] [求助]反汇编后再编译的问题 0.00雪花

2009-11-23 12:26
6686
现在我想对某个可执行文件A.exe进行反汇编,然后对得到的结果进行修改,修改之后再编译得到B.exe。这样具有可行性么?如果可行,希望大家能提供相关的工具或者链接,多谢!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
能修改汇编代码并保存,但是不能再编译了,也不存在编译的事情
2009-11-23 13:05
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
修改之后再编译得到B.exe

修改之后直接保存就OK了...
2009-11-23 14:16
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你以为得到源码了啊,还编译
2009-11-23 14:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
直接OD修改
2009-11-23 14:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
为什么不能再编译呢?我的想法就是得不到源码,那么我就修改汇编代码来实现某些修改,再编译成可执行文件,这样可行么?如果不可行,主要的障碍在什么地方呢?
2009-11-23 15:08
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
障碍是你是反汇编而不是反编译。
2009-11-23 15:53
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
http://bbs.pediy.com/showthread.php?t=36474

假如他就是用汇编写的 那就是"一回事"了
2009-11-25 14:37
0
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
汇编中有不少的伪指令,你“反编译”是反编译不回去的,所以不是一回事儿
2009-11-25 15:28
0
雪    币: 183
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
来学习的
听楼主说得有道理啊,对反汇编代码进行修改——自己写一个主函数,把虚拟地址什么的换成变量,程序实现的功能用各自的子函数(反汇编能看到子函数名啊),中间结果也能通过调试得到,在主函数中处理好程序可能产生的所有消息——,不是可以得到程序运行的结果吗?
为什么高手都说不行呢?
2009-11-26 19:28
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
理论上是可以通过分析、理解、逆向之后,再组建工程。
相当于借鉴A程序的内容自己编写B程序。
一般只逆关键代码,写出关键函数。
我想你不是这个意思,你的意思是直接把A弄成可编译成B的代码吧?
全部套汇编也需要Very long的时间。一般不会有人这样做。
2009-11-26 22:47
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你看看反汇编后的代码。。处自己写的写的代码有什么区别。
反汇编后的代码都是已经经过编译器处理过的
例如,mov eax,dword ptr[401025]这样的代码你要是再编译一次是不行的,编译器并不认[401025]是什么
还有,反汇编后的代码含有很多PE文件信息,编译器都不认的。
还有很多自己找
2009-11-26 23:00
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=泥芭;718068]你看看反汇编后的代码。。处自己写的写的代码有什么区别。
反汇编后的代码都是已经经过编译器处理过的
例如,mov eax,dword ptr[401025]这样的代码你要是再编译一次是不行的,编译器并不认[401025]是什么
还有,反汇编后的代码含有很多PE文件信息,编译器都不认的。
还有很...[/QUOTE]

IDA反汇编后就会把所有地址都变成标号 所以这个问题不存在呀
2009-11-26 23:21
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
有点难以想象 如果是个大软件 那写很久也很难保证正确 可是理论上却"那么"的可行
2009-11-26 23:23
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
如果反编译后功能是不相同的 那OD怎么能跟踪了呢
2009-11-26 23:25
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
那如果是高级语言的源程序呢 就不存在伪指令的问题了吧 而且IDA翻出来的汇编代码也有和伪指令功能类似的东西(貌似)
2009-11-27 22:35
0
雪    币: 85
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
可以但是相当于那程序是你编的了,一般不会这样做,除非是你的水平很高
2009-11-28 00:16
0
游客
登录 | 注册 方可回帖
返回
//