-
-
第七题 不问少年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直播授课
赞赏
他的文章
- 第七题 不问少年crackme Writeup 3575
- 第六题 Ericky-apk Writeup 3679
- 第五题 独行孤客CrackMe Writeup 3315
- 第四题 ReeHY-main Writeup 5410
- [原创]第三题 爱琴海CrackMe WriteUp 5797
看原图
赞赏
雪币:
留言: