实用的文章
kflnig
学crack是为了什么。1为了学习知识,2为了实用。
超星阅览器ssreader大家用过没?我这边用着用着过了几天之后出来这个框,图1
图1
嘿小家伙,还会自动更新,可是在我这台没上网的电脑里,这是一点用都没有。所以由此引出了本文的主题。就是消灭它的自动更新。
去安装文件夹下看看,有update.exe这个文件,点了一下,果然是它在捣鬼。
PEID扫壳,没有!
OD载入(我用fixdbg)。ctrl+n,看看,找到个像点模样的
名称位于 ssreader, 条目 4821
地址=00884988
区段=.idata
类型=输入 (已知)
名称=KERNEL32.WinExec
就是WinExec惹得祸了。我们下断在WinExec。然后F9(运行)就断在了我们想要的地方。看堆栈就知道了。如图2
图2
0044E214 |> \52 PUSH EDX ; |CmdLine
0044E215 E8 FEDB3400 CALL <JMP.&KERNEL32.WinExec>;断在此
0044E21A |. EB 24 JMP SHORT ssreader.0044E240
我们可以看到地址0012F9A8中的值010A4024就是PUSH EDX的产物。所以我们只要把下面一个0044E215的call,nop掉就可以了,但是又要注意堆栈平衡。所以我们先F4到0040E21A,这里我们是为了观察堆栈的变化。如图3
图3
这时我们可以看到栈顶已经是0012F9B0了。所以我们要手动来设置堆栈平衡。
0044E215 E8 FEDB3400 CALL <JMP.&KERNEL32.WinExec>
我们把上面这条代码改成。
POP EDX
POP EDX
其余的都nop掉就可以了。为了防止小鸟误操作,我把这段改的,贴出来了。
0044E214 |> \52 PUSH EDX ; |CmdLine
0044E215 5A POP EDX
0044E216 5A POP EDX
0044E217 90 NOP
0044E218 90 NOP
0044E219 90 NOP
0044E21A |. EB 24 JMP SHORT ssreader.0044E240
然后,OD复制到可执行文件,全部复制,保存文件。就可以了。这样就永远不会出现可恶的更新框了。还好这个家伙没有校验。其实用PEID的kanal插件查一下,可以看到CRC32,MD5这些我原本一位是校验的算法。
既然我已经开始搞了,这里还有一个看得不顺眼的。我虽然不知道扫描功能有什么用,但是竟然敢限制我,就是不爽。如图4
图4
一看就知道又是MessageBoxA。我们断下。
/*641B9F*/ CMP DWORD PTR DS:[EAX+1F4],0
/*641BA6*/ JNZ SHORT ssreader.00641BD1
/*641BA8*/ PUSH 30
/*641BAA*/ PUSH ssreader.0083BEAE
/*641BAF*/ PUSH ssreader.0083BE92
/*641BB4*/ MOV EAX,ESI
/*641BB6*/ CALL ssreader.00566F94
/*641BBB*/ PUSH EAX
/*641BBC*/ CALL <JMP.&USER32.MessageBoxA>;断在这里
然后往上找貌似判断的地方。641BA6这里的跳转实在是很像。所以在那里下个断,然后重新来一遍选择“文件――>新建――>扫描”,断下了。然后改变Z标志位。然后,然后就是,可以扫描了,我们把这里的JNZ 改成JMP。然后保存又是一处解决了。
几十秒钟时间一切搞定了。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法