前言: 学习笔记。
常规思路:下载 解压 查壳。
32 IDA Pro打开。
常规思路:>>>查找字符串 >>>main
① base64 input?
② A~Z a~z 0~9 +/=
所以这是base64的加密?
ok,不是变异的base64 【变异的如下】
回顾正题,东点点西看看。
把认识的给转了。
正向分析:
大意就是:
输入的字符进行某某算法
再把算法之后的字符 进行循环+j的操作
最后再和 str2进行比较。
逆向分析:
由正向分析可以知道,str2的值就是加密之后的值。
所以,逆推回去,从下往上执行(通过已知str2)进行逆向。
C脚本思路:(python没用习惯)
①先逆回 D【j】+j >>>Str2【j】-j
【注意:往回推时 是从最后一位往前推(逆向) 而不是 0 1 2 3 ...n(正向) 】
②再逆回那个某某算法。
前置:保险起见,,,= = 把str2转成 hex 或者 dec 。。。【原因:看xor的wp。。。】
选中str2字符 shift+e
C逆向脚本>>>①
②
由题意可知是base64加密(猜测嘛)>>
所以 ”sub_4110BE()“ >>>应该就是base64算法加密的实现。感兴趣可以去学习、了解原理。
OK 知道算法了(base64),直接查(在线工具、CyberChef、随波逐流等工具)>>>
为什么不写脚本? 不会!
python可以直接使用库函数。但是C没有现成的。要自己定义函数写....