本帖最后由 linzhiqi1 于 2019-4-17 17:53 编辑
多年前我做过51,z80和PIC的手工汇编,可以在目标码的基础上改程序,如替换个图标,改动显示等均可以这样做,有些单片机代码中有软件加密绑定芯片的唯一ID也可以跟踪去除。这些没有必要也不能反倒C的源代码上,有些时候要知道程序的算法,需要由目标码推出源代码,因为反编译是多值映射,不唯一,加之编译后都做了优化,优化目标还是多值的,返不回去,可行的技术路线是可以准确的分析出都有哪些变量及类型,比如浮点变量通常都是IEEE标准格式,字符型变量就一个字节也很好认定。int 型也不难。然后根据变量推出算法。再一个可性但工作量大的方法是读明白反汇编程序,画出流程图再用C重新编写。对于有复杂算法的程序总的工作量还是减少了的。当然这些都应该尊重原著的知识产权仅仅限于学习目的不可商用。
|