首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >逆向工程-对策

逆向工程-对策
EN

Security用户
提问于 2016-02-26 23:01:31
回答 2查看 770关注 0票数 1

我刚开始学习信息安全,但我正在学习逆向工程。

我读过这里关于反求工程困难的对策。代码签名是否保护代码不受逆向工程的影响?

编辑:关于混淆,我想这家伙已经回应了。谢谢!

EN

回答 2

Security用户

回答已采纳

发布于 2016-02-27 03:02:24

你在这里混淆了很多术语。也许我能帮忙。

  • 代码签名是对文件进行加密签名的过程,这样文件的用户就可以知道文件是谁签名的,以及签名后是否对其进行了修改。它通常不会使文件不可读,但是,根据签名如何附加到文件上,您可能需要一个特殊的工具来检查它。它对源代码或反向工程没有影响。Windows有一个名为Authenticode的代码签名过程,即有据可查。你可能希望阅读它的一般背景资料。
  • 混淆试图使可执行代码更难阅读。这通常用于翻译语言(如JavaScript )和字节代码编译语言(如Java和C#/.NET ),因为查看这些程序的源代码要容易得多。混淆与代码签名无关。您需要搜索特定平台的混淆系统(例如:.NET)。
  • 没有任何东西会使您的程序集代码不可读。毕竟,CPU需要读取它来执行您的程序,所以它必须是可读的。尽管优化的汇编程序代码已经很难进行反向工程,但混淆技术可能会使其更难阅读。

我认为你需要在这一点上做更多的研究,等你对基本知识有了更好的了解后再回来。

票数 4
EN

Security用户

发布于 2016-02-26 23:35:41

我不确定代码签名如何保护您的代码不被反向工程。

然而,它可以保护您作为代码作者的权利(这是软件提供商确保您没有被篡改的应用程序的一种方式)。

混淆就是简单地以一种让人难以理解的方式编写代码。在编写源代码时应用此技术。它不会使您的程序集“不可读”。一旦他将您的exe (在编译您的模糊代码后获得)附加到一个析取器上,破解器仍然能够看到程序集指令。但是,他将很难理解它所做的事情,并将其转换为原始代码。下面是一个模糊C代码的示例:

代码语言:javascript
运行
复制
#include <stdio.h>
main(t,_,a)
char
*
a;
{
    return!

0<t?
t<3?

main(-79,-13,a+
main(-87,1-_,
main(-86, 0, a+1 )

+a)):

1,
t<_?
main(t+1, _, a )
:3,

main ( -94, -27+t, a )
&&t == 2 ?_
<13 ?

main ( 2, _+1, "%s %d %d\n" )

:9:16:
t<0?
t<-72?
main( _, t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;\
#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:
t<-50?
_==*a ?
putchar(31[a]):

main(-65,_,a+1)
:
main((*a == '/') + t, _, a + 1 )
:

0<t?

main ( 2, 2 , "%s")
:*a=='/'||

main(0,

main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")

,a+1);}  
票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/115883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档