zoukankan      html  css  js  c++  java
  • [转]CellCtrl控件完美破解研究

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://zhaiht.blogbus.com/logs/37875472.html

    最近在学习过程中用到报表开发,使用了北京用友公司的CellCtrl报表控件。在网上查找到相关的资料进行学习研究(非商业用途),下面是从网上转摘的一篇文章,共同研究……

    一、简介

    CellCtrl控件是一个非常好用的控件,出于研究破解的目的,尝试了一个星期,终于出来一个比较完美的版本,修改的功能如下:

    1、 Login函数修改,随便输入任何名字都可以注册。

    2、 解决设计时开发环境退出的问题。

    3、 在读入文件时,同时保存到另一文件。

    二、运行效果

    设计时的截图如下:

    clip_image002

    运行时打印预览的截图如下:

    clip_image004

    三、修改过程

    现将修改的东东详细介绍一下,望批评指正。

    首先编写一个例程,用于测试软件,实现非常简单这里不详细介绍了。

    1、Login函数

    例程中的调用是:

    clip_image006

    LocalizeControl一定要调用,要不就老是显示未注册。

    用IDA打开CellCtrl5.ocx,过程比较漫长,我的机子用了近半个小时,找到Login函数实现地址,发现软件首先判断三个字符串是否为空,跳过就好了,后来又有一些调用,估计是判断注册数据是否正确,由于我的目的仅仅是让用户名”侠之大者”复制到正确的地址,所以只要没有引用第一个参数的统统不管,关键点如下图:

    clip_image007

    两个判断均会跳转到未注册函数里边,因为sub_10007FF0就是产生未注册字样的函数。

    很简单,直接跳过这些代码就搞定了。

    2、设计时开发环境退出问题

    由于想到在控件放置到容器时会访问并行口狗狗,就搜索打开并行口函数未解,又想到一定有判断是否运行时的函数,但是查找会是大海捞针,只是有一点,运行时与设计时的区别,就是设计时有那个版本号出现,首先找到版本字串,然后发现只有3个地方引用到它,这样采用排除的方法,找到了判断的位置,如下图:

    clip_image008

    这回知道怎么改了,很简单,均让它返回运行时就可以了,结果超爽,不用读狗速度超快。

    3、在读入文件时,同时保存到另一文件

    这个是最难的,因为需要添加函数,查找所有地方,发现只有代码段最后有40h的空间,就在这里写代码吧,参考SaveFile函数,需要调用一个只有3个参数的函数,分别是保存文件名,“Cell51”,“0“,在数据段找个位置定义好文件名,然后添加函数如下:

    clip_image009

    在ReadFromBuffer函数中调用一下这个函数,表格就会被写到c:\testout.cll文件中。还需要到PE头那里修改代码段的大小,要不访问会越界的呦,并且需要将两个常量地址添加到重定位地址表,要不控件没有加载到10001000就会报错的,这让我头痛了两天呢。

    四、重要说明

    1、以上数据均基于CellCtrl5,3,8,0820版本,其它版本可能不同。

    2、软件版权属于华软公司,本文只做研究交流之用,禁止做为商业用途,需要时请购买正版。

    3、有建议请留言,共同提高才是交流的目的。

    五、数据共享

    软件链接如下:CellCtrl5.3.8.rar

    压缩包中有修改后的控件,还有一个去除了输出文件功能的版本,原版由于文件大小的限制而没有放置,下载前请阅读说明。

    由于博客的空间增大了,应大家要求传上原版:CellCtrl5.3.8_org.rar

    六、时间标识

    2009年4月15日,深圳南山区科技园。

    2010年3月18日,深圳南山区科技园,上传原始控件,供大家研究。

  • 相关阅读:
    蓝牙遥控小车设计(二)——车体搭建和利用串口遥控小车
    WIN7下使用sublime text3替代arduino IDE(安装方法和所遇到的问题)
    在使用Arduino中遇到的问题(无法使用中文注释、程序无法下载)
    python 任务调度模块sched
    使用__all__限制模块可被导入对象
    python判断任务是CPU密集型还是IO密集型
    使用__slots__限制实例的属性
    使用装饰器获取被调用函数的执行的时间
    python上下文管理器
    http协议以及http1.0和http1.1的区别
  • 原文地址:https://www.cnblogs.com/awen2011/p/2233069.html
Copyright © 2011-2022 走看看