好友
阅读权限 10
听众
最后登录 1970-1-1
萌新 记录学习过程
大佬 还请绕道
可能以后有事没事会记录一些东西,都是一些基础入门的东西,有想学习的一起啊,可以在下面留言一块讨论问题, 一起学习一起进步
前几天看了一下那个公益赛,还是自己太菜了,那些题目几乎都不会写......
要是有大佬打那个比赛了,可以写一下那个的WP
跪求大佬发一下详细的WP
有的大佬发的WP实在是看不懂,可能也和基础太菜有关,有的算法估计给源代码都一时半会都不一定能写出来解密脚本
下面还是看基础简单的吧!我尽可能的讲的详细一点,因为刚入门的时候看什么都是晕的,不过我也是个菜鸡,有什么错误还请大佬指点一下。
使用IDA 的常规操作:
F5,然后shift+F12
可以看到程序很短小,也就只能欺负欺负这样的了
一般有些程序从字符串中会出现一些猫腻,我们从字符串中发现了Incorrect password!
双击后;
主函数也是十分短小,有一个判断决定了走向,跟进去这个sub_4006FD函数
什么,你问我为什么是八个字符?
字符串自己会在结尾添加一个'\0' 作为结束符号啦!
并且这些数据是存放在rodata段的,所以源代码可能是定义了一个全局的二维数组。(大佬们,要是这里错了,可以在下面告诉我一下...)
看懂后就Python脚本了
我先放一下代码(不知道跑版没):
[Python] 纯文本查看 复制代码
v1 = "Dufhbmf"v2 = "pG`imos"v3 = "ewUglpt"x=""v=["D","u","f","h","b","m","f"],["p","G","`","i","m","o","s"],["e","w","U","g","l","p","t"]#print(v[0][0])for i in range(4): for s in range(3): t=v[s][i*2] x+=chr(ord(t)-1)print(x)
其实这个代码的作用就是:
现在是三行七列,它是用每一行的第一、三、五、七这四个字符,
因此在数组中就是0、2、4、6
而且它是先把一列遍历完再说下一列的所以让行在内层循环。
还有另外一种方法:
[Python] 纯文本查看 复制代码
v1 = "Dufhbmf"v2 = "pG`imos"v3 = "ewUglpt"x=""v1=v1+v2+v3for i in range(12): t=v1[(i%3)*7+(2*int(i/3))] x+=chr(ord(t)-1)print(x)
这种方法是把二维数组转换为了一维数组,因为没有'\0 '作为结尾,所以只用七个字符就可以了 。所以代码中有一个*7
最近对于被指针、常量指针、指针常量、指向常量的指针这几个的汇编代码给搞懵了... 有什么有关这方面的好文章可以推荐一下!
有什么问题,可以一起交流啊!
剩下就是夯实基础,勤加练习了!
免费评分
查看全部评分
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。