某小程序,已脱壳。求解(内附自己分析)
前提原程序查壳为Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks。很好脱壳,经过寻找OEP后,定位于004E3312。之后用lord pe 转储,之后用IR 1.7修复。得到 抠抠视频秀_dumped_fix_.exe 。程序可以正常打开,这说明脱壳并修复成功。
分析
OD载入,运行程序。点击 更多--注册,输入假码。如图1.
尝试1.在程序运行的状态下,ctrl+g,00401000,智能搜索字符串。无法搜到。此尝试失败。
尝试2.下 BP ShowWindow 、BP MessageBoxExW,然后点击 注册 。可以断下,在堆栈回溯后,执行到用户代码,均可以到达005480F5。如图2
005480F5 85FF test edi,edi ; 抠抠视频.005A517C
观察到定位于005480E6 时候,信息窗口堆栈 ss:=00C452F8, (UNICODE "无效的注册码,请检查")
即使更改跳转,跳过005480EF FF15 0CA57500 call dword ptr ds:[<&user32.MessageBoxW>>; user32.MessageBoxW 也无法完成成功注册。
软件成功注册后,注册窗口消失,并且在 更多 菜单栏里 没有 注册这一选项。
另外。我还尝试了暂停法,条件断点法,均无法断在判断注册的位置,不知道 老师 们有什么思路呢?
从注册入手,找关键跳,看下图
关键CALL内的内容
扯蛋的是,这程序一运行,就在一个文件里写了regcode的代码,但不要高兴,注册码是假的,哈哈,因为每次删除那个文件,重建的码都不一样
此为测试品附件链接。
链接: https://pan.baidu.com/s/1Nl9WS2y7Wi1jAI3cvCiluA 提取码: x4nf {:5_191:}刚刚又试了一下,我尝试下断点 BP KillTimer (计时器函数)无论什么时候都能断下来,但是执行到用户代码(alt+f9)会无限中断,思路真的是一头雾水了。{:5_188:}
有段算法,太长,能通过一次,后面还有算法
$+28 > 02181B50UNICODE "A2345678-A1234568-A1234568-A1234567"
虫虫编程 发表于 2021-1-29 20:51
有段算法,太长,能通过一次,后面还有算法
$+28 > 02181B50UNICODE "A2345678-A1234568-A1234568 ...
这个软件有现成的注册码,也有别人弄好的成品……
不知道有没有爆破的思路? 别人逆向成品,对比即可 虫虫编程 发表于 2021-1-29 21:05
别人逆向成品,对比即可
别人的貌似还用其他软件打包过了,不是原生软件,暂时没办法。 这软件搞定没呢呢 本帖最后由 dowdndx 于 2021-2-6 09:00 编辑
虽然网上有现成的这个版本的成品、注册码,但是自己弄的放心一点。
页:
[1]
2