李沉舟 发表于 2016-10-3 13:46

销售小票打印专家分析

本帖最后由 镜中神无 于 2016-10-3 13:51 编辑

【软件名称】销售小票打印专家【软件版本】2.9.2【下载地址】https://www.crsky.com/soft/34506.html【分析说明】只是学习爱好,没有其他意思
首先把软件下载,不需要安装

我们发现这里有个“未注册”的标志,就从这里开始好了。OD载入,直接搜索字符串引用,Ctrl+F,搜索“注册”,连按几次N,发现了这么一个信息

鼠标左键双击第一个地址,进去看看

很明显,程序首先读取0x43C814 这个地址的值(DWORD)到EAX寄存器里,再判断该值是否为0(假),为假则表示未注册。
∴程序是通过一个全局变量来验证是否注册的,我们只需要改掉这个全局变量就好了
现在我们来理一下程序的逆向分析思路,①    查找所有修改0x43C814的参考,NOP掉
②    自己写语句修改0x43C814为1



如果没看到这个窗口,可以点击一下工具栏上的“R”
把图中圈出的指令全部NOP掉,最后一句也要删掉,我们不需要考虑到底是验证成功还是失败。
把这些指令全部NOP掉之后就可以保证程序不论是验证成功还是失败都不能改变全局变量的值,所以我们需要手动修改一下该变量。

点一下工具栏上的“C”,我们来到CPU(反汇编)窗口
如果不能定位到程序入口点,那么就双击右边寄存器列表里的EIP寄存器
我们需要在这里写上自己的语句来修改全局变量,所以需要一块空白空间,按Ctrl + B,

随便输入一串0就好
在搜索到的地址以及入口点写入如下代码

入口点的jmp跳转的地址要注意,要修改为搜索到的地址
直接保存出去看看结果吧
我们来谈谈为什么要这样做,
至于我们为什么要把入口点的一些代码复制到修改代码那一块呢?因为我们在入口点用了一个jmp,跳转到我们的修改代码,jmp占了5个字节,push ebp, mov ebp,esp, push -1这3条指令被占用了,所以我们需要在修改代码那一块加上这几条指令,否则程序会出现问题
PDF版:

nx2008 发表于 2017-1-22 18:20

这个可以学习一下

voodoosys 发表于 2017-1-22 21:14

专业类软件.多学多看.谢谢楼主的热心分享.点赞表示谢意.

pojie4059 发表于 2017-1-30 23:40

太好了,感谢分享{:5_116:}

byh3025 发表于 2017-12-6 17:37

多么新颖的思路啊

ghostxu 发表于 2022-1-21 12:00

很好很强悍,坚持下去哦~

PDWORD 发表于 2022-1-21 20:01


多谢大佬分享。

xujinwen 发表于 2022-1-22 01:32

谢谢大佬分享

kalove 发表于 2022-1-22 13:52

支持~谢谢大神的分享~

ghostxu 发表于 2022-2-7 09:02

支持开源~!感谢分享
页: [1] 2
查看完整版本: 销售小票打印专家分析