伟大的卓哥 发表于 2022-12-5 15:06

某文进度计划编制软件XX过程

本帖最后由 伟大的卓哥 于 2022-12-7 09:21 编辑

## 前言
工程行业制作甘特图软件有很多,但是用下来,还是这个某文出的软件比较便捷,该XX过程是20年年底还在工程行业的时候做的,新版本软件已经修复了该过程所需要一些关键call,我最开始尝试过很多办法来修改,但大多容易造成程序崩溃,所以这里我挑选最容易让新手理解的方法,技术负责人和总共用过都说好的方法来讲述。
我是个逆向小白,以下内容如有过错,还望各位高手指点。

xx方法适用于有一定基础的坛友,毫无基础可以看看 yyhd 所出的基础教程
## DIE查壳

查壳显示是Delphi的程序,这个软件还有加密狗,看DIE的显示应该是深思的加密狗,但是实际使用起来并没有提示需要插入加密狗的提示框。


我们启动软件,打开附带的例子,点 文件 ---- 打印或者文件-----导出为图片/xls文件, 因为是免费版都会提示“该版本只能输出横道图30行!”,看过论坛破解基础教程的应该都能想到接下来是要用这个提示框来做什么,就不废话了,直接上x32dbg附加程序

## X32DBG

附加完成第一步,我们先进入程序领空,不然待会搜出来的字符串无法找到我们所需要的。


接下来搜索当前模块的字符串,搜索“该版本只能输出横道图”




有很多结果,不要慌,我们右键第一个结果选择“转到反汇编”, 按F2 打一个断点,对应地址的背景变成红色,就是已经打上了断点





接着我们切到程序,点击“文件”----“导出XLS”,然后看调试器,发现程序断在了我们之前打断点的位置,此时我们按F9,弹出了之前看到的提示框,那么我们此时就算找对了关键call。


从断点处往上找,找到第一个JMP,发现这个跳转能跳过我们打断点的位置,并且他还在一个JE的跳转下,那我们就从这个JE下手,


JE的上方是test al, al , al值来自 该句上方的 call 0x00C25B08,我们进入 call 0x00C25B08 ,发现其中跟al赋值相关的部分上方 还有一个 call 0x00C25A98 ,猜想 al的值为1,程序就会判定软件不是免费版,而 cmp eax, 0x71 中 eax的值来自 call 0x00C25A98,那我们再进入 这个call


修改关键位置代码



保存补丁,再将补丁后的文件替换到安装目录打开,版本已经成为 横道图版



测试能成功输出表格文件,打印和导出图片偶尔会有内存错误,这个bug无法解决,望论坛大佬指点。



## 结语

该xx过程,新版本软件已经修复,能适用该方法的旧版本文件因版权问题故不在此提供,需要学习的用户可以自行百度搜索该软件旧版本。
祝52破解的所有工程人今后都不被收费软件所困扰,52破解论坛越办越好!

至于新版修复了确实该方法的前面几个关键call,但这几个call现在仔细分析也应该只是处于验证逻辑的中间,对于新版大家可以继续通过此办法找出验证的源头位置进行修改即可达到导出表格的目的,至于打印和导出图片,有没有内存错误其实对实际使用没太大影响,能导出表格文件就能实现导出图片和打印这两个功能了。


## 免责声明

根据我国《计算机软件保护条例》第十七条规定:“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。” 您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本人、论坛无关,用户本人下载后不能用作商业或非法用途,需在 24 小时之内删除,否则后果均由用户承担责任。

wtujoxk 发表于 2022-12-6 17:49

本帖最后由 wtujoxk 于 2022-12-7 10:13 编辑

官网版也行,找到0063A237    FFD1            call ecx
0063A239    84C0            test al,al
0063A23B    74 09         je short HwPlan.0063A246
0063A23D    C605 26BDB400 7>mov byte ptr ds:,0x71
0063A244    EB 07         jmp short HwPlan.0063A24D
0063A246    C605 26BDB400 6>mov byte ptr ds:,0x70
0063A24D    8D45 B0         lea eax,dword ptr ss:
0063A250    890424          mov dword ptr ss:,eax
0063A253    E8 BABC4900   call HwPlan.00AD5F12
mov byte ptr ds:,0x70
修改为:
mov byte ptr ds:,0x6E
或者
mov byte ptr ds:,0x71

86019576 发表于 2023-6-1 17:19

zixuan203344 发表于 2022-12-6 14:59
按你的修改,在导出图片时候会提示内存错误。
你试下

楼主 能给个版本。。。。我加你

满不懂 发表于 2022-12-5 20:54

这个不是只有横道图版,还有正式版,有网络图,继续找吧,近在咫尺。

牧马小太爷 发表于 2022-12-7 14:28

lies2014 发表于 2022-12-5 16:23
最新版也可以XX,你的修改关键位置代码处不建议这么改,因为0x11783A0处的值不止一个地方调用,得改对这个 ...

能给一个成品软件吗?

牧马小太爷 发表于 2022-12-5 15:45

小白想要一个成品软件 ,谢谢!

lies2014 发表于 2022-12-5 16:23

最新版也可以XX,你的修改关键位置代码处不建议这么改,因为0x11783A0处的值不止一个地方调用,得改对这个地址赋值的地方才可以避免其他的坑

gxr2010 发表于 2022-12-6 11:12

关键是要使用ds:=71 ,可以在两个地方进行修改:
第一处:
0131A239|.84C0          test al,al
0131A23B      74 09         je short HwPlan.0131A246
0131A23D|.C605 26BD8201>mov byte ptr ds:,0x71
把它修改为
0131A239|.84C0          test al,al
0131A23B      90            nop
0131A23C      90            nop
0131A23D|.C605 26BD8201>mov byte ptr ds:,0x71

第二处,可以进入上面的CALL中,在关键地方使得al=1即可。

0131CBB5|> \31DB          xor ebx,ebx
0131CBB7|.8D7D A4       lea edi,
0131CBBA|>893C24      mov dword ptr ss:,edi
0131CBBD|.E8 50934900   call HwPlan.017B5F12
0131CBC2      89D8          mov eax,ebx
0131CBC4|.81C4 7C040000 add esp,0x47C
0131CBCA|.5E            pop esi                                  ;00CFF4C8
0131CBCB|.5F            pop edi                                  ;00CFF4C8
0131CBCC|.5B            pop ebx                                  ;00CFF4C8
0131CBCD|.5D            pop ebp                                  ;00CFF4C8
0131CBCE|.C3            retn

修改为

0131CBB5|> \31DB          xor ebx,ebx
0131CBB7|.8D7D A4       lea edi,
0131CBBA|>893C24      mov dword ptr ss:,edi
0131CBBD|.E8 50934900   call HwPlan.017B5F12
0131CBC2      B0 01         mov al,0x1
0131CBC4|.81C4 7C040000 add esp,0x47C
0131CBCA|.5E            pop esi                                  ;00CFF4C8
0131CBCB|.5F            pop edi                                  ;00CFF4C8
0131CBCC|.5B            pop ebx                                  ;00CFF4C8
0131CBCD|.5D            pop ebp                                  ;00CFF4C8
0131CBCE|.C3            retn

即修改0131CBC2处。


无敌小儿 发表于 2022-12-5 15:14

翰文进度计划编制系统吧

伟大的卓哥 发表于 2022-12-5 15:23

无敌小儿 发表于 2022-12-5 15:14
翰文进度计划编制系统吧

必须是某文进度计划编制系统{:1_886:}

kimorp 发表于 2022-12-5 15:39

很经典的软件,收藏了

aonima 发表于 2022-12-5 16:11

感谢分享

ok667 发表于 2022-12-5 16:30

很经典的软件

伟大的卓哥 发表于 2022-12-5 16:33

lies2014 发表于 2022-12-5 16:23
最新版也可以XX,你的修改关键位置代码处不建议这么改,因为0x11783A0处的值不止一个地方调用,得改对这个 ...

我试试,感谢指点

bachelor66 发表于 2022-12-5 17:09

伟大的卓哥 发表于 2022-12-5 16:33
我试试,感谢指点

期待楼主更新教程                                                
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 某文进度计划编制软件XX过程