社区
其它技术问题
帖子详情
请问高手:目前的逆向工程技术,能不能发现我的可执行程序里面的数学函数是什么?(里面有具体说明)
ADAMAND
2011-02-16 10:25:38
比如,我在源程序里面有一个数学函数,甚至包含更加复杂的过程调用,编译成可执行程序。如果有人拿到这个可执行程序,他通过逆向工程,能不能发现这个函数?
我的目的是想在我的程序里面,通过数学函数+系统调用等,把口令、密码等进行变换,所以不想被人发现这个变换函数是什么。
请高手指教,谢谢啦!
...全文
190
12
打赏
收藏
请问高手:目前的逆向工程技术,能不能发现我的可执行程序里面的数学函数是什么?(里面有具体说明)
比如,我在源程序里面有一个数学函数,甚至包含更加复杂的过程调用,编译成可执行程序。如果有人拿到这个可执行程序,他通过逆向工程,能不能发现这个函数? 我的目的是想在我的程序里面,通过数学函数+系统调用等,把口令、密码等进行变换,所以不想被人发现这个变换函数是什么。 请高手指教,谢谢啦!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zephyr_23
2011-03-05
打赏
举报
回复
[Quote=引用 8 楼 adamand 的回复:]
告诉大家我的最终目的吧。
对于对称体制的密码学技术,一直存在必须要可信的第三方的机构存在才能够交换会话密钥的问题。 而第三方机构是否可信赖本身又是个用户不得不接受的问题(如果第三方机构是美国人的,中国人能够始终信任它吗?另外,第三方机构的费用肯定使得通信成本上升) 即使采用公钥技术交换会话密钥,也仍然会用到第三方机构,因为公钥的管理机构本身又是个可信的第三方机构。 总之一句话,保密通信在当前……
[/Quote]
你是想做版权吧?再好的算法总是有漏洞的,就你那个算法,有两个漏洞
1、感觉你的算法和以前机器狗差不多,但后然就出现了软件模拟的机器狗,所以现在中国盗版很猖狂...你应该想办法通过网络让动态验证,
2、“首先发送方对接收方进行身份确认” 问题不就又来了么?
ADAMAND
2011-02-18
打赏
举报
回复
感谢各位大侠回复!
gbb21
2011-02-18
打赏
举报
回复
[Quote=引用 8 楼 adamand 的回复:]
告诉大家我的最终目的吧。
对于对称体制的密码学技术,一直存在必须要可信的第三方的机构存在才能够交换会话密钥的问题。 而第三方机构是否可信赖本身又是个用户不得不接受的问题(如果第三方机构是美国人的,中国人能够始终信任它吗?另外,第三方机构的费用肯定使得通信成本上升) 即使采用公钥技术交换会话密钥,也仍然会用到第三方机构,因为公钥的管理机构本身又是个可信的第三方机构。 总之一句话,保密通信在当……
[/Quote]
为什么不用非对称加密呢?
zhanshen2891
2011-02-17
打赏
举报
回复
当然可以了,不过首先他得先分析你是怎么做的,然后才能下一步,就是说:现在你发的帖子如果被破解的人看见了,那么他就容易多了。其实最困难的就是第一步。
arong1234
2011-02-17
打赏
举报
回复
觉得lz想搞密码学是好的,但是不要沉迷在空想中。你推出一个新的方法,必须有理论证明才行,不能用你手工计算的复杂度来考虑你密码的强度,你要证明在数学上它很安全才行。你这种所谓“逆向工程无法解”实际没有什么意义,首先你懂逆向工程再说吧[Quote=引用 8 楼 adamand 的回复:]
告诉大家我的最终目的吧。
对于对称体制的密码学技术,一直存在必须要可信的第三方的机构存在才能够交换会话密钥的问题。 而第三方机构是否可信赖本身又是个用户不得不接受的问题(如果第三方机构是美国人的,中国人能够始终信任它吗?另外,第三方机构的费用肯定使得通信成本上升) 即使采用公钥技术交换会话密钥,也仍然会用到第三方机构,因为公钥的管理机构本身又是个可信的第三方机构。 总之一句话,保密通信在当前……
[/Quote]
赵4老师
2011-02-17
打赏
举报
回复
用IDAPro反汇编一下你的exe看看不就知道了?
另外
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
ADAMAND
2011-02-17
打赏
举报
回复
告诉大家我的最终目的吧。
对于对称体制的密码学技术,一直存在必须要可信的第三方的机构存在才能够交换会话密钥的问题。 而第三方机构是否可信赖本身又是个用户不得不接受的问题(如果第三方机构是美国人的,中国人能够始终信任它吗?另外,第三方机构的费用肯定使得通信成本上升) 即使采用公钥技术交换会话密钥,也仍然会用到第三方机构,因为公钥的管理机构本身又是个可信的第三方机构。 总之一句话,保密通信在当前的技术下,必须依赖第三方机构的存在,比如KDC,PKI。
如果通信双方不需要交换密钥,那么就不需要依赖第三方机构了。
所以我想设计一个不需要交换密钥的保密通信方式,大致思路是:
仍然采用对称加密体系,但是把密文嵌在程序里面,密钥隐含在程序里面。
首先发送方对接收方进行身份确认,然后要求接收方把 接收方机器的特征的HASH值 发送给发送方;发送方编写程序, 把这个HASH值进行数学变换后作为密钥;这个程序内嵌了DES或者别的加密算法,对消息进行加密后附在程序里面。编译程序,发送给接收方。这样,程序里面没有密钥,只有对HASH值的数学变换作为隐含的密钥,还有加密算法以及密文。
接收方收到程序后,执行程序;程序会读取机器特征并且做HASH以及对这个HASH值做数学变换,得到密钥,接着进行解密,得到明文。
如果有人窃取了这个程序,那么由于机器特征不符,而且无法伪造,所以程序就不会正常运行或者不会给出正确结果。
这是我的初步想法。
后来,我反复思索,感觉除了确认身份这步可能有问题之外,还存在一个严重的问题,就是:窃听者首先截获HASH值以及程序,然后通过逆向工程技术修改程序,跳过读取机器特征和计算HASH的步骤,直接把HASH值代入那个数学变换函数即可得到密钥,接下去就顺理成章地得到正确的明文了。
不知道有没有什么好办法可以克服这个问题?
有感兴趣的兄弟,如果你有逆向工程的经验,或者搞过密码学,可以来信给我:adam_ldq75@hotmail.com.
FancyMouse
2011-02-17
打赏
举报
回复
看数学函数容易得很。发现函数的话就算不逆向工程也能做得到。
mstlq
2011-02-16
打赏
举报
回复
楼主确实有洁癖的话,建议用这招吧
http://www.cppblog.com/sleepwom/archive/2010/05/26/116372.html
以前我遇到过有洁癖的客户,用了这个他才放心
ADAMAND
2011-02-16
打赏
举报
回复
看到这么快就有兄弟们回复,非常高兴!
其实我关注的仅仅是逆向工程(即采用反汇编跟踪等技术研究和修改可执行程序的功能)的当前状况,能不能做到判断程序里面的函数是什么?这个比做某个软件的破解版时跳过一段程序要难,因为你要识别出我这个程序里面有个数学函数比如f(x)=x^2 mod 2011。我这个函数的返回结果要用在别的地方,你想仅仅跳过是不行的,否则程序输出结果是不对的。而如果你能识别出这个函数,你就可以直接把结果代入后面引用它的地方了。
arong1234
2011-02-16
打赏
举报
回复
密码学是公开的技术,很多技术即使知道哪个函数怎么写也不可能解密,因此lz不必要这么麻烦
bluesky12312388
2011-02-16
打赏
举报
回复
矛和盾是相互的,将程序逻辑和加密结合起来,可以做到高保护性,
这方面比较有代表性的是RAR的密码保护
Java
逆向工程
师
职位职能: 高级软件工程师 软件工程师 职位描述: 1.精通Java,有Java应用程序开发经验; 2.具有一定的Java逆向和破解基础,能够对被Allatori等Obfuscator工具处理的Bytecode进行逆向,搞清程序流程,读懂关键算法; 生命不熄,奋斗不止! 记得十年前决定开发操作系统和编译器的时候,我已经解接触了开源软件,但是接触开源代码还是后来的事。
脱壳基础入门第一课:
逆向工程
与恶意软件分析实战
回顾整条链路,我们经历了:静态分析:通过PE结构识别加壳痕迹;动态调试:利用断点、堆栈、内存监控追踪执行流;自动化修复:借助ImpRec、Scylla重建IAT完成脱壳。但这还不是终点。真正的
高手
,会在脱壳过程中思考:- 这个壳用了什么加密算法?- 是否存在多层嵌套?- 是否启用了虚拟机保护?- 如何编写通用脚本来批量处理同类样本?脱壳的本质,是对程序生命周期的全程掌控。
C#
函数
式编程(一)
函数
式编程(FP)是软件开发历史上最伟大的创新之一,它也很酷。同样有趣。不仅如此,它每年都在增长。我尽可能经常参加开发者会议,并且我注意到一个趋势。每年,关于
函数
式编程的内容总是越来越多,而不是越来越少。甚至通常会有一个完整的轨道专门讨论它,其他讲座中也经常包含
函数
式编程内容作为讨论的一个点。它正在慢慢地变得非常重要。为什么呢?随着容器化和无服务器应用程序等概念的增长,
函数
式编程不仅仅是开发者空闲项目的一点乐趣;它不是几年后就会被遗忘的时尚。它真正有利于为我们的利益相关者带来益处。
CTF逆向总结(二)
CTF 逆向总结 非预期行为: 指解题中出现与预想结果不符合的一系列非预期行为,这基本
说明
了在中间或前面存在其他自己还没分析的操作。 不同系统的特殊数: 指解题中遇到考察特定位数系统中特定的数的真实值的时候,需要辨认出对应的值才能继续解题。如:32位系统中100000000就是0了 冗余中锁定关键代码: 从后往前看,就是确定比较关键对象,从该对象开始排除其他无关变量,一步步找出与该对象有关的其它变量,最后串起找到的所有相关变量,然后开始逆向分析。 题目类型总结: 题目描述
计算机专业中经典书籍(程序猿和大学生必读)
2楼 : JAVA篇 此篇收录:.《Java 2 核心
技术
》、2.《Java编程语言》、3.《Effective Java》、4.《Java解惑》、5.《Java编程思想》 3楼: C篇 此篇收录:1.《C程序设计语言》、2.《C和指针》、3.《C陷阱与缺陷》、4.《C专家编程》、5.《你必须知道的495个C语言问题》 4楼: C++篇 此篇收录:1.《C++ Primer》、2
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章