MD5("DIONNELLE");
如题,如果程序中包含一个MD5加密的字符串来当作密码的话! 并编译成DLL文件!
请问通过反编译,或者跟踪等黑客技术,可以得到MD5加密方式嘛? (因为我有可能是其它的加密方式)?还有可以得到里面的常量参数"DIONNELLE"嘛?
如果都可以得到,那请问如果加个变量$PS="DIONNELLE",然后再MD5($PS);
呢?
我知道经过VB\BC等编译过的DLL文件,目前还不能完全反编译! 但是通过部分反编译或跟踪等黑客技术不知道能不能得到加密的参数字符常量等!???
希望能详细说明!谢谢!如果可以得到,有什么办法可以防止!?
另外:
如果用md5(md5(md5("DIONNELLE")));
可以得到字符串的话,有可能得到是MD5三次循环嘛?
有什么办法可以防止嘛?
VB或VC编译的DLL文件可以部分反编译嘛?
答案:6 悬赏:40 手机版
解决时间 2021-03-01 03:47
- 提问者网友:喧嚣尘世
- 2021-02-28 06:09
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-02-28 06:30
"DIONNELLE" 为常量,所以会放在程序的某个地方,有一个地址。
md5(md5(md5("DIONNELLE"))); 这样子是没有什么作用的。
反汇编出来也是几个push和call而已,没有什么作用
//////////////
VB\BC等编译过的DLL文件,目前还不能完全反编译
无论是exe还是dll都可以反汇编,即使静态不行,也可以动态调试。
破解反汇编就行 了,不一定要反编译。
//////////////////////////////
可以得到字符串的话,有可能得到是MD5三次循环嘛?
根据call的调用地址,绝对可以看出你是对同一个函数的三次调用。
至于看出你是否采用的是md5算法。这是根据代码的特征分析的。
如果要防止破解,最好给程序加上自己写的强壳,技术有很多我也说不了
,我也是略知一二而已,就不多说了。
md5(md5(md5("DIONNELLE"))); 这样子是没有什么作用的。
反汇编出来也是几个push和call而已,没有什么作用
//////////////
VB\BC等编译过的DLL文件,目前还不能完全反编译
无论是exe还是dll都可以反汇编,即使静态不行,也可以动态调试。
破解反汇编就行 了,不一定要反编译。
//////////////////////////////
可以得到字符串的话,有可能得到是MD5三次循环嘛?
根据call的调用地址,绝对可以看出你是对同一个函数的三次调用。
至于看出你是否采用的是md5算法。这是根据代码的特征分析的。
如果要防止破解,最好给程序加上自己写的强壳,技术有很多我也说不了
,我也是略知一二而已,就不多说了。
全部回答
- 1楼网友:青灯有味
- 2021-02-28 11:02
VB Decompiler
- 2楼网友:轻熟杀无赦
- 2021-02-28 10:05
试试
private declare function test lib "e:\program\c\q\debug\q.dll" () 改成
private declare sub test lib "e:\program\c\q\debug\q.dll" ()
- 3楼网友:天凉才是好个秋
- 2021-02-28 08:58
只要你程序里面的MD5密码是以常量的形式存在的就狠简单。比如绝对可以得到!
就算静态汇编取不了,也可以动态调试取到你的字符串。
另:
LIUNX一般都用gcc写c程序。
这样写的VB代码:
XXX="sdfsdfisfjkisdfjksdufdskf"
或者这样写的C代码:
char str[]="sfsfsfsdfdsfsdfsdf";
只要用一个十六进制编辑器找到这个字符串然后改了就可以了,因为MD5加密过后的字符串总是16或32位的,所以很好找到也很好修改。修改的时候注意Unicode字符问题,也就是如果你看到的字符串是这样的:s.d.s.e.f.e.d.f.e.就说明是使用的Unicode字符集,那么该的时候就不要改那些点的位置。
回答者:chenyun1985 - 经理 四级 10-24 19:17
我也来回答:
- 4楼网友:一把行者刀
- 2021-02-28 08:29
绝对可以得到!
就算静态汇编取不了,也可以动态调试取到你的字符串。
另:
LIUNX一般都用gcc写c程序。
- 5楼网友:酒安江南
- 2021-02-28 07:07
只要你程序里面的MD5密码是以常量的形式存在的就狠简单。比如这样写的VB代码:
XXX="sdfsdfisfjkisdfjksdufdskf"
或者这样写的C代码:
char str[]="sfsfsfsdfdsfsdfsdf";
只要用一个十六进制编辑器找到这个字符串然后改了就可以了,因为MD5加密过后的字符串总是16或32位的,所以很好找到也很好修改。修改的时候注意Unicode字符问题,也就是如果你看到的字符串是这样的:s.d.s.e.f.e.d.f.e.就说明是使用的Unicode字符集,那么该的时候就不要改那些点的位置。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯