首页
社区
课程
招聘
第七题 不问少年crackme Writeup
发表于: 2017-6-15 00:13 3574

第七题 不问少年crackme Writeup

2017-6-15 00:13
3574

  本题主要对输入进行多次置换后,与一固定的表进行匹配,若匹配成功,输入将用于解密一段加密后的shellcode,最后执行这段shellcode。解这题主要是通过逆推得到最初的正确输入。

  第一步对输入处理的函数位于sub_411b30,这个函数的内容在执行前是经过加密的,通过与“PEDIY”异或进行解密,解密函数为sub_410dd6。

  进入sub_411b30中,首先将输入的每一位与0xcc异或得v1,最后到一个大小为0x40的表中查找v1的偏移offset。表如下所示。

  得到偏移offset后,会将offset除以5,得到的商加上5后加上offset得到新的偏移Newoffset。同样还会将Newoffset继续除以5得到商加上5后加上Newoffset得到Newoffset1,如此循环,循环的次数取决于这是输入数据的第几位。循环如下所示。

  最后将得到一串值,这串值的每一位将和0xcc进行异或得到v2,并将v2逻辑左移3位的值和v算术右移5位的值进行或运算,得到新的一串值。这些是在函数sub_4116ec中实现的。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//