dowdndx 发表于 2021-1-18 16:07

某小程序,已脱壳。求解(内附自己分析)

前提
原程序查壳为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 也无法完成成功注册。


软件成功注册后,注册窗口消失,并且在 更多 菜单栏里 没有 注册这一选项。

另外。我还尝试了暂停法,条件断点法,均无法断在判断注册的位置,不知道 老师 们有什么思路呢?

haier8917 发表于 2021-1-18 16:07

从注册入手,找关键跳,看下图

关键CALL内的内容

扯蛋的是,这程序一运行,就在一个文件里写了regcode的代码,但不要高兴,注册码是假的,哈哈,因为每次删除那个文件,重建的码都不一样

dowdndx 发表于 2021-1-18 16:09

此为测试品附件链接。
链接: https://pan.baidu.com/s/1Nl9WS2y7Wi1jAI3cvCiluA 提取码: x4nf

dowdndx 发表于 2021-1-22 22:17

{:5_191:}刚刚又试了一下,我尝试下断点 BP KillTimer (计时器函数)无论什么时候都能断下来,但是执行到用户代码(alt+f9)会无限中断,思路真的是一头雾水了。{:5_188:}

虫虫编程 发表于 2021-1-29 20:51

有段算法,太长,能通过一次,后面还有算法

$+28   > 02181B50UNICODE "A2345678-A1234568-A1234568-A1234567"

dowdndx 发表于 2021-1-29 21:00

虫虫编程 发表于 2021-1-29 20:51
有段算法,太长,能通过一次,后面还有算法

$+28   > 02181B50UNICODE "A2345678-A1234568-A1234568 ...

这个软件有现成的注册码,也有别人弄好的成品……
不知道有没有爆破的思路?

虫虫编程 发表于 2021-1-29 21:05

别人逆向成品,对比即可

dowdndx 发表于 2021-1-29 21:11

虫虫编程 发表于 2021-1-29 21:05
别人逆向成品,对比即可

别人的貌似还用其他软件打包过了,不是原生软件,暂时没办法。

haier8917 发表于 2021-2-6 00:45

这软件搞定没呢呢

dowdndx 发表于 2021-2-6 08:57

本帖最后由 dowdndx 于 2021-2-6 09:00 编辑

虽然网上有现成的这个版本的成品、注册码,但是自己弄的放心一点。
页: [1] 2
查看完整版本: 某小程序,已脱壳。求解(内附自己分析)