标签:依次 str 异或 需要 href ble 字符串 开头 mamicode
没有壳。
因为程序是使用 VB5 编写的,所以我们先使用 VB Decompiler 加载程序看一下
可以看到,程序有3个面板,6个点击事件。地址 4030F0 处的代码可能就是我们需要的。
然后使用 OD 载入程序,搜索字符串
进入代码处,可以看到上方不远处有一个比较函数
运行到此处,查看函数的参数
第一个参数本应该是我们输入的密码才对,我在此输入的是 123456,但现在却是一些莫名其妙的符号。
第二个参数应该就是正确的密码。
因为第一个参数不是我们原本输入的密码,所以我们猜想程序可能对我们输入的密码进行了一些处理之后,才进行的比较。所以我们要对上面的字符串进行相应的逆处理,才能得到真正的密码。
来到代码开头,也就是上面看到的地址 4030F0 处,下断点,运行程序
程序首先获取输入的密码,然后求得密码的长度
然后建立循环,循环次数为密码的长度。在循环中,程序每次取输入密码的一个字符,求得其 ASCII 值。然后依次和字符串 "2000" 的单个字符的 ASCII 值进行异或运算。也就是说,密码的第一个字符的 ASCII 值和 2 的 ASCII 值进行异或运算,密码的第二个字符对应 0进行运算,密码的第5个字符又再次和 2相对应进行运算。
循环完成之后,才会进行比较
根据其方法,我们可以反推出其真正的密码
我们将字符串"qBQSYdXUe_B\V"再一次和字符串"2000"进行异或运算即可
标签:依次 str 异或 需要 href ble 字符串 开头 mamicode
原文地址:https://www.cnblogs.com/white-album2/p/11712249.html