反编译旧程序,变量似乎已加密? [英] Decompiled an old program, variables seem encrypted?

查看:96
本文介绍了反编译旧程序,变量似乎已加密?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

伙计们,我的朋友在10年级时做了一个基本程序(实际上是他的第一个),最近我找到了.exe,所以我通过反编译器对其进行了娱乐,只是为了看看他做了什么以及大多数变量看起来像这样:

私有字符串pLYMxZvuWEVHLlL ="PWFpdTBNSHZtcFFZdFAzY2ZkczI5dVlMNzU1T0dnVklVazE2citwbWJFc1g =";

私有字符串zrRtYWFsNEuJTCB ="TVNDT05GSUcuRVhF";

它们都按原样出现.这并不是什么大问题,因为我只是希望重温他作为程序员的第一年(没什么重要的:P),但是,仍然有人知道为什么会发生这种情况吗?

我搜索了google,并尝试在几乎所有可以想象的基础中将其从基础转换为基础,但是我现在陷入了困境:(

如果您知道为什么会发生这种情况,请告诉我:)

Hey guys, my friend made a basic program back in grade 10 (his first one actually) and I recently found the .exe, so i ran it through a decompiler for fun just to see what he did and most of his variables look something like this:

private string pLYMxZvuWEVHLlL = "PWFpdTBNSHZtcFFZdFAzY2ZkczI5dVlMNzU1T0dnVklVazE2citwbWJFc1g=";

private string zrRtYWFsNEuJTCB = "TVNDT05GSUcuRVhF";

They all appear as so. This isn''t really too much of an issue since I was only hoping to re-live his first years as a programmer (nothing important :P), but still, does anybody know why this happens?

I searched google and tried converting it from base to base in almost every base imaginable but I''m stuck now :(

If any of you know why this happened please let me know :)

推荐答案

有些程序被称为混淆器,它们使用各种技术来对应用程序进行反编译.不太容易.这是一个pdf文件,它很好地总结了混淆处理的全部内容:程序混淆介绍" [^ ] .

一种方法是加密,而这正是这些字符串最有可能发生的事情.这项技术需要付出一定的代价,因为在程序运行时访问字符串时,必须将其解密.好的混淆器可让您在程序启动时进行解密时配置性能优化.当然,这是权衡安全性的一种明智选择,因为现在可以分析程序的内存.

混淆者所做的另一件事是重命名非公共成员,这使得理解该程序更加困难.大多数程序员使用带有某种语义的方法名称和字段名称.称为Write()的方法听起来会产生一些输出.如果将其称为XD5§GL(),则只需分析整个方法即可.

混淆并不能阻止任何坚定的个人了解您的程序做什么,但是会大大降低他们的速度.

我希望此解决方案对您有所帮助.

干杯!
There are programs that are called obfuscators that employ various techniques to make the process of decompiling an application less easy. Here is is a pdf which wraps up pretty good what Obfuscation is all about: Introduction To Program Obfuscation[^].

One method is encryption and this is what most probably happend to these strings. This technique comes at a cost as the strings will have to be decrypted when they''re being accessed during the programs runtime. Good obfuscators allow you to configure for performance optimization in doing the decryption at program start up. This is of course a trade off security wise as the program''s memory can now be analyzed.

Another thing that obfuscators do is to rename non public members that make it even harder to understand the program. Most programmers use method names and field names that carry a certain semantic. A method called Write() sounds like it will produce some output. If it were called XD5§GL() all that is left to do is analyze the whole method.

Obfuscation is no means to stop any determined individual from finding out what your program does, but it can slow them down considerably.

I hope this solution was helpful to you.

Cheers!


这篇关于反编译旧程序,变量似乎已加密?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆