汇编语言与逆向工程实验报告6
汇编语言与逆向工程实验报告 6
环境安装
crackme02 逆向
1 | undefined4 main(void) |
通过分析伪代码得
首先输出两句话,输入密码
然后 if 判断,如果输入的内容与十六进制数 0x52b24
相等,则输出Password OK
,否则输出 Invalid Password!
所以密码就是0x52b24
十六进制数为:0x52b24
转换为二进制为:0b1010010101100100100
转换为八进制为:0o1225444
转换为十进制为:338724
crackme03 逆向
主函数伪代码
1 | undefined4 main(void) |
test 伪代码
1 | void test(int param_1,int param_2) |
shift1 伪代码
1 | void shift(char *param_1) |
shift2 伪代码
1 | void shift(char *param_1) |
通过分析伪代码,主函数接受用户输入一个数,然后进入 test 函数,参数是输入的数和另一个十六进制数
十六进制数为:0x52b24
转换为二进制为:0b1010010101100100100
转换为八进制为:0o1225444
转换为十进制为:338724
进入 test 函数之后可以看到如果两个参数相等,则调用函数第一个shift1
,否则调用函数第二个shift2
shift1 函数携带参数为字符串Sdvvzrug#RN$$$#=,
,shift2 函数携带参数为字符串Lqydolg#Sdvvzrug$
shift1 函数的作用是将传入的字符串中的每个字符的 ASCII 码值减去 3,然后将结果打印出来。
shift2 函数的作用同上
编写脚本解密
1 | a="Sdvvzrug#RN$$$#=," |
解密结果是
Password OK!!! :)
Invalid Password!
I_have_g0t_it_n0w!
- 标题: 汇编语言与逆向工程实验报告6
- 作者: W1ndys
- 创建于 : 2024-04-05 18:57:37
- 更新于 : 2025-01-17 20:28:48
- 链接: https://blog.w1ndys.top/posts/827e82d0.html
- 版权声明: 版权所有 © W1ndys,禁止转载。
评论