eeyou 发表于 2021-3-14 20:28

试用前有个功能选择界面不知道如何找到爆破点

软件可以试用,想要爆破。启动后弹出选择对话框,然后下一步再转到注册对话框,最后关闭弹网页加弹出软件主体窗口。
这个因为开始就有个功能选择对话框,导致我找不到jmp语句。因为开始的第一步的选择也是软件功能问询,所以不是直接上来就注册询问的暴破来的直接。还请师傅们给个思路,在哪个地址能跳转不显示那个注册窗口。我主要想知道这类一般是如何暴的,具体来几个断点函数再如何思考到目标地址的。注重这个实现过程。压缩包不到150kb,多谢。
链接: https://pan.baidu.com/s/1DUndzfJYlIJnv4SZCJUF6g 提取码: 1cyk

eeyou 发表于 2021-3-15 21:46

本帖最后由 eeyou 于 2021-3-15 21:50 编辑

byh3025 发表于 2021-3-15 07:36
这里就是关键的地方,验证了是否已注册
用vb decompiler是看到了如下句,当时没肯定就是你说的,但猜着应该是。
loc_0043D5DD:         global_00445038 = Proc_4_2_437890(GetSetting("XlsExtract", "REGCODE", "REGCODE", global_0040800C), var_88)
问题一:请问你是如何抓住关键点的?也是通过这软件看的?还是有什么下断的方法思路Od出来的?我对您的操作思维点很想知道。


原始
0043D5D8   .E8 B3A2FFFF   call xlsExtra.00437890
0043D5DD   .66:A3 3850440>mov word ptr ds:,ax
0043D5E3   .C745 FC 06000>mov dword ptr ss:,0x6
0043D5EA   .6A FF         push -0x1                              ; /OnErrEvent = Resume Next
0043D5EC   .FF15 88104000 call dword ptr ds:[<&MSVBVM60.__vbaOnErr>; \__vbaOnError

暴后
0043D5D8   .E8 B3A2FFFF   call xlsExtra.00437890
0043D5DD      66:C705 38504>mov word ptr ds:,0x1
0043D5E6      90            nop
0043D5E7      90            nop
0043D5E8      90            nop
0043D5E9      90            nop
0043D5EA   .6A FF         push -0x1                              ; /OnErrEvent = Resume Next
0043D5EC   .FF15 88104000 call dword ptr ds:[<&MSVBVM60.__vbaOnErr>; \__vbaOnError

针对以下两句
0043D5DD   .66:A3 3850440>mov word ptr ds:,ax
0043D5E3   .C745 FC 06000>mov dword ptr ss:,0x6
问题二:可是为何我将ax直接改为1,OD直接自动将后面的句子给弄成了nop?不是还应该执行一句赋值ss=6的那句直接没了?

winddyj 发表于 2021-3-17 23:59

eeyou 发表于 2021-3-16 13:21
我的意思是我ax改成1就可以暴了,也不懂为啥你说的oxffff的意义是什么?但是我自己执行改ax为1操作时下面 ...

楼主修改语句时多观察下汇编代码,别光看反汇编代码
修改语句,发现下一句被NOP了,真相只有一个,你修改的指令超过原始长度,把下面语句的窝占了呗
汇编语句有潜规则,特别是对EAX这样的寄存器,是可以缩写的
你看原来的反汇编代码挺长,把寄存器改成1后,觉得变短了,可实际汇编代码已经超标了

byh3025 发表于 2021-3-15 07:36

这里就是关键的地方,验证了是否已注册

byh3025 发表于 2021-3-15 22:02

eeyou 发表于 2021-3-15 21:46
用vb decompiler是看到了如下句,当时没肯定就是你说的,但猜着应该是。
loc_0043D5DD:         global_ ...

修改上面call的返回值为0xffff,不是有1 ,原理吗,你可以看看我以前的帖子,也是vb的,很类似

冥界3大法王 发表于 2021-3-15 22:29

首先你得有个key,然后设法完成写入到xx,然后启动过程中肯定有个地方校验。
通常启动时,关于时,注册时,三处皆会通往一处为全局标志位。

eeyou 发表于 2021-3-16 12:48

冥界3大法王 发表于 2021-3-15 22:29
首先你得有个key,然后设法完成写入到xx,然后启动过程中肯定有个地方校验。
通常启动时,关于时,注册时 ...

就是没key,软件有试用功能,但肯定启动时会校验一次。,我的暴破就是干掉启动时的动作。如何摸到那句的地址的操盘手法是我关注的。。

eeyou 发表于 2021-3-16 12:52

byh3025 发表于 2021-3-15 22:02
修改上面call的返回值为0xffff,不是有1 ,原理吗,你可以看看我以前的帖子,也是vb的,很类似

mov word ptr ds:,ax
我是把ax改成1,直接把1给全局变量。然后就过了。。。你的改call的返回值应该是正统方法,我还要看看您的帖子才可能学到。好像之前看个视频还提到过要栈平衡写句子时。

eeyou 发表于 2021-3-16 13:21

byh3025 发表于 2021-3-15 22:02
修改上面call的返回值为0xffff,不是有1 ,原理吗,你可以看看我以前的帖子,也是vb的,很类似

我的意思是我ax改成1就可以暴了,也不懂为啥你说的oxffff的意义是什么?但是我自己执行改ax为1操作时下面的那句0x6的那行,直接自动nop了。这是OD自动判断设定的吗?我问的是这个动作是何原因?

byh3025 发表于 2021-3-16 14:07

eeyou 发表于 2021-3-16 13:21
我的意思是我ax改成1就可以暴了,也不懂为啥你说的oxffff的意义是什么?但是我自己执行改ax为1操作时下面 ...

你改成1确实能过注册,但后续在功能上还是会有验证的,如果是1就不一定能得去,因为它的全局变量是FFFF

byh3025 发表于 2021-3-16 14:10

你看下这个帖子就知道为什么是FFFF而不是1了
https://www.52pojie.cn/thread-727792-1-1.html
页: [1] 2
查看完整版本: 试用前有个功能选择界面不知道如何找到爆破点