逆向学习crackme160题-015-Brad Soblesky.1 的 write up

简介: 逆向学习crackme160题-015-Brad Soblesky.1 的 write up

015-Brad Soblesky.1 的 write up

乙太编辑,请勿转载,谢谢配合

1. 程序执行

2. 查壳

3. 分析

C51是大端存储;socket编程中网络字节序一般是大端存储

首先我们拖入32位IDA进行分析,根据运行的错误信息的关键提示字符,可以知道下面标黄的可能一个是错误提示,一个是正确提示。双击跟踪即可,如下图:

跟踪后以text view形式阅读,如下图:

解释:其实这题和简单,可以看的出来主要做的就会用户输入的string2和内置的string对比。而string只是从内存中三个双字拼接出来的,如下图:

选中标黄字符串,右键选择以十六进制转换成ASCII形式即可显示出字符串来

这里只是需要注意一个大端存储的问题:

大端存储(Big-Endian)

数据的高字节存储在低地址中,数据的低字节存储在高地址中 如:

int a = 1;   
// int在内存中占 4Byte; 
// a在内存中的分布为 0x1 0x0 0x0 0x0; 
// 从左到右内存地址降低,也就是高字节地址存放的是a的低字节数据

应用:C51是大端存储;socket编程中网络字节序一般是大端存储

小端存储(Little-Endian)

数据的高字节存储在高地址中,数据的低字节存储在低地址中 如:

int a = 1;   
// int在内存中占 4Byte; 
// a在内存中的分布为 0x0 0x0 0x0 0x1; 
// 从左到右内存地址降低,也就是低字节地址存放的是a的低字节数据

应用:x86结构、ARM和DSP都是小端存储

4. 结果

所以最后拼接出来的正确结果是:

相关文章
|
1天前
|
编译器 C++
逆向学习crackme160题-002-abexcm5的write up
逆向学习crackme160题-002-abexcm5的write up
13 1
|
1天前
|
算法 数据安全/隐私保护
逆向学习crackme160题-011-wocy.1 的 write up
逆向学习crackme160题-011-wocy.1 的 write up
6 1
|
1天前
|
算法 数据安全/隐私保护
逆向学习crackme160题-008-Afkayas.1 的 write up
逆向学习crackme160题-008-Afkayas.1 的 write up
9 1
|
1天前
|
存储 API
逆向学习crackme160题-003-Cruehead-CrackMe-3的 write up
逆向学习crackme160题-003-Cruehead-CrackMe-3的 write up
7 1
|
1天前
|
算法 API 数据安全/隐私保护
逆向学习crackme160题-007-reg 的 write up
逆向学习crackme160题-007-reg 的 write up
8 2
|
1天前
|
算法
逆向学习crackme160题-012-ACG-crcme1 的 write up
逆向学习crackme160题-012-ACG-crcme1 的 write up
8 0
|
1天前
|
算法 数据安全/隐私保护
逆向学习crackme160题-009-Boonz-KeygenMe#1 的 write up
逆向学习crackme160题-009-Boonz-KeygenMe#1 的 write up
6 0
|
1天前
|
算法 API
逆向学习crackme160题-014-Splish 的 write up
逆向学习crackme160题-014-Splish 的 write up
8 0
|
1天前
逆向学习crackme160题-005-Andrnalin.1 的 write up
逆向学习crackme160题-005-Andrnalin.1 的 write up
5 0
|
1天前
|
数据安全/隐私保护
逆向学习crackme160题-010-ceycey 的 write up
逆向学习crackme160题-010-ceycey 的 write up
6 0