S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #21 呵,我写没问题. 如果我写出来能实现楼主的目的,那么你也把你的源代码拿出来大家一起学习学习?
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #22 你可以试试, 象dbexpora.dll这样的东西不是直接由你的程序去调用的, 你自然没办法代替它LOADLIBARY,更没办法对静态调用的DLL作影射。 除非你自己写个壳,把这些都搞定。 当然,如果你把壳的代码公开了,我也不介意公开,前提是你的程序要兼容98%以上的东西。
你可以试试, 象dbexpora.dll这样的东西不是直接由你的程序去调用的, 你自然没办法代替它LOADLIBARY,更没办法对静态调用的DLL作影射。 除非你自己写个壳,把这些都搞定。 当然,如果你把壳的代码公开了,我也不介意公开,前提是你的程序要兼容98%以上的东西。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #23 呵,我又不是专业搞软件的.我没那么多精力去完善每个方面.我只是凑凑热闹.我可以抽点时间把上面你说的没用的代码的过程都给实现了,而且会给出一个DELHPI的例子.所以你也不要一个条件接一个条件.爽快点话在我公布后就把你的过程也公布出来.至于你说的98%的情况我还真不知道,因为我不靠这个赚钱,没必要钻那么深.
呵,我又不是专业搞软件的.我没那么多精力去完善每个方面.我只是凑凑热闹.我可以抽点时间把上面你说的没用的代码的过程都给实现了,而且会给出一个DELHPI的例子.所以你也不要一个条件接一个条件.爽快点话在我公布后就把你的过程也公布出来.至于你说的98%的情况我还真不知道,因为我不靠这个赚钱,没必要钻那么深.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #24 如果不兼容,做了出来只有你自己的DLL能跑,那有什么意义。 再说,我说那个没用的代码是解决不了 dbexpora.dll 这样的问题的, 因为根本不到你来 LoadLibary,当然你或者可以硬性处理+上, 但LZ说的是 "自带的dll文件还有一些第三方的控件的DLL",意思就是任意DLL, 如果你不能达到98%的兼容率就算勉强做出来了又有什么意义。 你达到 98% 的兼容率并公布代码,那我也可以公布。 如果滥做一个勉强能跑的东西,又怎么值得我的代码。
如果不兼容,做了出来只有你自己的DLL能跑,那有什么意义。 再说,我说那个没用的代码是解决不了 dbexpora.dll 这样的问题的, 因为根本不到你来 LoadLibary,当然你或者可以硬性处理+上, 但LZ说的是 "自带的dll文件还有一些第三方的控件的DLL",意思就是任意DLL, 如果你不能达到98%的兼容率就算勉强做出来了又有什么意义。 你达到 98% 的兼容率并公布代码,那我也可以公布。 如果滥做一个勉强能跑的东西,又怎么值得我的代码。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #25 嘛叫滥做? 你把你"非滥做"的拿出来看看? 我对这方面没什么研究,所以我还真不清楚这个98%的兼容.但是不等于滥做,注意素质. 如果你是靠这个赚钱的,我还可以理解你不愿意公开.但是不要轻易小瞧别人找来的资料.还有,多谈点有用的东西,这里不是赚钱的地方,而且也赚不了几个钱.
嘛叫滥做? 你把你"非滥做"的拿出来看看? 我对这方面没什么研究,所以我还真不清楚这个98%的兼容.但是不等于滥做,注意素质. 如果你是靠这个赚钱的,我还可以理解你不愿意公开.但是不要轻易小瞧别人找来的资料.还有,多谈点有用的东西,这里不是赚钱的地方,而且也赚不了几个钱.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #26 很简单,把你要打包的EXE和DLL发给我,只要EXE本身没被加壳,都可以兼容。 我只是告诉你这个资料没用而已,我研究的时候就找过,试验过了。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #27 呵,看来下午都很闲. 这个资料嘛说没用的. 至少可以实现从资源中释放到内存,然后从内存中调用DLL的函数.这可是最基本的功能.对于自开发的DLL已经足够了. 至于第三方,我还真木仔细想过.好象有点意思,找个时间研究一下.
呵,看来下午都很闲. 这个资料嘛说没用的. 至少可以实现从资源中释放到内存,然后从内存中调用DLL的函数.这可是最基本的功能.对于自开发的DLL已经足够了. 至于第三方,我还真木仔细想过.好象有点意思,找个时间研究一下.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #28 是最基本功能,但你肯定没试过它是否能跑,或者缺些什么吧?只是看上去可用而已,又何来足够。 再说如果自己开发的DLL,完全没必要做成 DLL,打包又有何用。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #29 你还真以为我会直接用它的代码? 我已经在DELPHI下简单改写了下,可以跑.一切正常. 自己开发的DLL,当然有用了.比如,很多共用的东西在一个DLL里或是不是同一种语言,很多自己的软件都会用,但是又不想别人用,这时候就有用了.
你还真以为我会直接用它的代码? 我已经在DELPHI下简单改写了下,可以跑.一切正常. 自己开发的DLL,当然有用了.比如,很多共用的东西在一个DLL里或是不是同一种语言,很多自己的软件都会用,但是又不想别人用,这时候就有用了.
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-11 #30 你试试LOAD一个使用了MFC类库的东西看看如何,如果按照那个代码的做法,一般都会出问题。 共用的东西在 DELPHI 里还不如直接做成控件直接,既好调试,使用也方便。 要不想别人用把参数改成一个指针,指向任何东西,那别人要分析就非常难了, 有这个能力的人还不如自己写一个来的快。
你试试LOAD一个使用了MFC类库的东西看看如何,如果按照那个代码的做法,一般都会出问题。 共用的东西在 DELPHI 里还不如直接做成控件直接,既好调试,使用也方便。 要不想别人用把参数改成一个指针,指向任何东西,那别人要分析就非常难了, 有这个能力的人还不如自己写一个来的快。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-12 #31 拜托,都说那个代码不重要,重要的是思路和资料。还说那个代码没完没了。代码是死的,人是活的,这个道理你不会不懂吧。不就是把一个DLL映射到内存中,修改相应的PE头参数,比如基地址,重定位表,输入表等,凡是分析过PE头的和有PE头资料的人,做这个不是什么难事。这只是一个载入的规范,熟悉一下而已。 还有共同的东西不只是DELPHI的,还有其他语言的,DLL,控件都是选择之一;至于把什么参数改指针,我看你是真的没什么可说了,你咋不都把防止别人的技巧都列出来?应用的东西,存在都有其不同的适应环境和条件。你去扣这些有嘛意义。 要讨论就多说点有意义的东西,再下去,都不知道扯哪去了。
拜托,都说那个代码不重要,重要的是思路和资料。还说那个代码没完没了。代码是死的,人是活的,这个道理你不会不懂吧。不就是把一个DLL映射到内存中,修改相应的PE头参数,比如基地址,重定位表,输入表等,凡是分析过PE头的和有PE头资料的人,做这个不是什么难事。这只是一个载入的规范,熟悉一下而已。 还有共同的东西不只是DELPHI的,还有其他语言的,DLL,控件都是选择之一;至于把什么参数改指针,我看你是真的没什么可说了,你咋不都把防止别人的技巧都列出来?应用的东西,存在都有其不同的适应环境和条件。你去扣这些有嘛意义。 要讨论就多说点有意义的东西,再下去,都不知道扯哪去了。
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-12 #32 好像你只贴了那个代码,你又没贴思路,那你所说的思路肯定就是从代码来的了。我说那个代码有问题,所以从那个代码来的思路就一样有问题。除代码之外我没见过你贴了什么思路和资料。 再说 DLL 技巧,我说那个方法使用得当就基本可以把别人偷用 DLL 的可能性降低到 1%,那还有必要大费周章地把 DLL 打包进程序么? 再退一步说如果你觉得真的十分绝对有必要,那大可以用第三方软件,比如你贴的那个, 还可以把别的数据都一并打包进去呢。 所以事情就变成 1 为什么要打包? 2 防止 DLL 被盗用。 3 有简单技巧可以实现。 4 没必要用复杂的方法。 5 为什么要打包2? 6 减少软件代码重复性。 7 直接做成控件好处更多,还方便调试调用。 8 没必要用复杂的方法。 9 为什么要打包3? 10 我就是喜欢。 11 直接用现成软件,问题更少。 12 没必要用复杂的方法。 综上所说,你这个思路基本没意义。
好像你只贴了那个代码,你又没贴思路,那你所说的思路肯定就是从代码来的了。我说那个代码有问题,所以从那个代码来的思路就一样有问题。除代码之外我没见过你贴了什么思路和资料。 再说 DLL 技巧,我说那个方法使用得当就基本可以把别人偷用 DLL 的可能性降低到 1%,那还有必要大费周章地把 DLL 打包进程序么? 再退一步说如果你觉得真的十分绝对有必要,那大可以用第三方软件,比如你贴的那个, 还可以把别的数据都一并打包进去呢。 所以事情就变成 1 为什么要打包? 2 防止 DLL 被盗用。 3 有简单技巧可以实现。 4 没必要用复杂的方法。 5 为什么要打包2? 6 减少软件代码重复性。 7 直接做成控件好处更多,还方便调试调用。 8 没必要用复杂的方法。 9 为什么要打包3? 10 我就是喜欢。 11 直接用现成软件,问题更少。 12 没必要用复杂的方法。 综上所说,你这个思路基本没意义。
S sky1001 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-12 #33 哈,够能扯的. 小伙子,看题目,不要偏离中心思想,你这样写出来的作文是不及格的. 不是我要打包,我也不需要. 既然你说俺没提思路,那我重提一次: 把一个DLL放入EXE的资源里,EXE运行的时候把DLL释放到内存.然后按照加载PE文件的规范,把这个DLL映射到一个内存空间,修改其基地址,重定位表,重建输入表以及按照部分内存的保护属性,释放或保护.然后从输出表中读出要引用的函数的内存地址.这是主要的思路. 再说一次,说点有意义的,别扯其他的.写作文要紧贴中心思想.
哈,够能扯的. 小伙子,看题目,不要偏离中心思想,你这样写出来的作文是不及格的. 不是我要打包,我也不需要. 既然你说俺没提思路,那我重提一次: 把一个DLL放入EXE的资源里,EXE运行的时候把DLL释放到内存.然后按照加载PE文件的规范,把这个DLL映射到一个内存空间,修改其基地址,重定位表,重建输入表以及按照部分内存的保护属性,释放或保护.然后从输出表中读出要引用的函数的内存地址.这是主要的思路. 再说一次,说点有意义的,别扯其他的.写作文要紧贴中心思想.
H haiip2000 Unregistered / Unconfirmed GUEST, unregistred user! 2007-12-21 #34 我的天,结果出人预料哦.... 不过现在我自己已经把这个问题克服啦 谢谢大家支持!