谢岗镇做网站,天推广人的网站,wordpress打赏积分功能,wordpress 部分图打不开打开程序 常规注册界面#xff0c;打开OD#xff0c;随便找找就看到关键字了 没有壳逻辑也挺简单的 获取输入框#xff0c;用5比较输入内容的长度#xff0c;小于则跳转提示密码长度不够 否则就进入下一个流程#xff0c;去获取序列号#xff0c;其实可以直接将jnz换…打开程序 常规注册界面打开OD随便找找就看到关键字了 没有壳逻辑也挺简单的 获取输入框用5比较输入内容的长度小于则跳转提示密码长度不够 否则就进入下一个流程去获取序列号其实可以直接将jnz换成je就可以完成暴力破解。 这里主要是要理解一下这个loopd循环体的内容直接看着还是有点难理解动态调试到是能看明白。这里主要是难在了不知道什么时候才会停止循环看来明天要写个c看下反汇编单独学一下了。还是用IDA吧打开IDA跳转到401152处按F5进入到伪代码段。 通过这部分稍微就好理解了序列号的内容为对应用户名的每一位的ascii值减去长度加上位置比如假如用户名总长度为5第0位为A则A - 5 → A(65) -5 - 0 60 ()第1位为BB - 5 1 → B(66) -4 62 ()用这个就可以写出注册机了。
#include stdio.h
#include string.h
#include stdlib.hvoid generate_key(const char* input, char* output) {int len strlen(input);for (int i 0; i len; i) {// 核心算法output[i] input[i] - (len - i)output[i] input[i] - (len - i);}output[len] \0; // 添加字符串终止符
}int main() {char username[21]; // 最大20字符1终止符char serial[21]; // 同样大小printf(Enter username (5-20 characters): );if (!fgets(username, sizeof(username), stdin)){perror(Input error);return 1;}// 移除换行符username[strcspn(username, \n)] \0;int len strlen(username);if (len 5) {printf(Error: Username must be at least 5 characters\n);return 1;}generate_key(username, serial);printf(Generated Serial: %s\n, serial);return 0;
}搞定