写了一个CrackMe 不知道能不能撑到晚上
成功提示明显先容我吐槽吐槽,短短几十行汇编代码,被你VM成了 将近跑了300万行代码,娱乐娱乐还行,用在软件上就算了吧。
程序开始其主要会会申请一个高地址来 存放vm_opcode,就是文件的附加数据。
然后就开始执行VM代码了,如下图所示。
这么恶心的CM ,算法就没法玩了,咱还是玩玩爆破吧
很明显的是 edx就是handle的索引了,然后写个脚本跑一跑吧(handle自己识别一下吧,也挺恶心的)
var vm_eip
var vm_run
var vm_opcode
var vm_opcode_str
var vm_eip_str
mov vm_run,13B43BC
loop:
esto
mov vm_eip,,4
itoa vm_eip
mov vm_eip_str,$RESULT
mov vm_opcode,edx
itoa vm_opcode
mov vm_opcode_str,$RESULT
wrta "log.txt","vm_opcode:" + vm_opcode_str + " vm_eip:" + vm_eip_str + "\r\n"
jmp loop
然后特么发现这样的LOG都跑了 300多kb,才出现了注册失败的信息框。
然后咱来整理一下流程(自己跑一下看日志,我就不上传日志了)
先CreateFileA 打开一个名为key.txt的文本
在调用ReadFile 读取长度为4
在调用closehandle关闭句柄
然后这里省略250万行的计算代码
我们不管。
通过分析直接到计算好的vm_eip这里来
下图就是计算成功的vm_eip 地址
下图为失败的vm_eip地址
从这里入手爆破,大家都懂得{:1_918:},爆破方法就N种了,这里就不多说了。
一字节爆破:
刚下载完就被公司的杀毒干掉了。。。这尼玛什么鬼 二楼{:301_999:}哈哈哈 本帖最后由 神枪泡泡丶 于 2017-6-11 17:07 编辑
好像是判断key.txt内的注册码吧 神枪泡泡丶 发表于 2017-6-11 17:06
好像是判断key.txt内的注册码吧
{:1_910:}猜对了 然后呢? 永久禁言 发表于 2017-6-11 17:13
软件都不能运行 错误的
{:301_977:}发个图? 永久禁言 发表于 2017-6-11 17:43
忘记打包运行库了 装一个就行了 不太会用,~~~~~