Skip to content

Commit 58c7a12

Browse files
authored
Update README.md
1 parent 0c76abe commit 58c7a12

File tree

1 file changed

+35
-38
lines changed

1 file changed

+35
-38
lines changed

Android/A06/README.md

Lines changed: 35 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ PADDING:填充
4646
一切基于字节做操作。
4747
4848
举例:
49-
明文:0123456789 to hexdump 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66(16个字节)
49+
明文:0123456789abcef to hexdump 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66(16个字节)
5050
aes把明文放在一个4*4的矩阵当中,表中每个元素是一个字节大小
5151
30 34 38 63
5252
31 35 39 64
@@ -97,7 +97,7 @@ ida view-> open subviews-> segments data数据断以及rodata只读数据断。
9797

9898
![5](./pic/5.png)
9999

100-
![6](./pic/6.png)
100+
![6](./pic/6.png)
101101

102102
通过对AES算法原理了解,学会通过查找`S盒`,来确定SO中是否有AES算法。
103103

@@ -222,27 +222,27 @@ w0 w1 w2 w3 w4 w5 w6 .....w43
222222

223223

224224
为什么到w43?
225-
因为是aes-128, 所以每一轮密钥是16个字节,4个w是一轮的密钥。
225+
因为是aes-128, 所以每一轮密钥是16个字节,4个w是一轮的密钥。
226226

227227
初始化的addRoundKey用到的key:
228-
key0 = w0w1w2w3 = d42711aee0bf98f1b8b45de51e415230我们的种子密钥,用来做初始变换,根据我们传入的种子密钥获得10个新的子密钥。
229-
hook初始变化addroundKey的异或后面的key,就是我们输入的种子key。
228+
key0 = w0w1w2w3 = d42711aee0bf98f1b8b45de51e415230我们的种子密钥,用来做初始变换,根据我们传入的种子密钥获得10个新的子密钥。
229+
hook初始变化addroundKey的异或后面的key,就是我们输入的种子key。
230230

231231
9轮运算用到的key分别是:
232-
k1:w4w5w6w7
233-
k2:w8w9w10w11
234-
......
235-
k9:w36w37w38w39
232+
k1:w4w5w6w7
233+
k2:w8w9w10w11
234+
......
235+
k9:w36w37w38w39
236236

237237
最后一轮:
238-
k10: w40w41w42w43
238+
k10: w40w41w42w43
239239

240240
密钥编排:
241-
就是根据我们w0-w3传入的密钥,通过密钥编排,生成w4-w43,也叫密钥扩展算法
242-
密钥扩展:w0-w43,44个w,或者44 *4 = 176个字节
241+
就是根据我们w0-w3传入的密钥,通过密钥编排,生成w4-w43,也叫密钥扩展算法
242+
密钥扩展:w0-w43,44个w,或者44 *4 = 176个字节
243243

244244
文章:
245-
https://blog.csdn.net/qq_28205153/article/details/55798628
245+
https://blog.csdn.net/qq_28205153/article/details/55798628
246246
```
247247
248248
**2.1 w4-w17的生成**
@@ -257,20 +257,19 @@ T函数步骤:
257257
3. rcon表异或
258258

259259
假如:
260-
w4的计算:
261-
w0 = 2b7e1516,w3 = 0x09cf4f3c,T(w3) = sbox(shiftrow(w3)) ^ rcon[i]
262-
循环左移1位 -> cf4f3c09
263-
S表替换 -> 8a84eb01
264-
rcon表异或 -> 8b84eb01(rcon表固定的,rcon表=01000000、02000000)
265-
最后 w4 = 8b84eb01 ^ w0 = a0fafe17
266-
w5的计算:
267-
w5 = w4 ^ w1 = a0fafe17 ^ w1
260+
w4的计算:
261+
w0 = 2b7e1516,w3 = 0x09cf4f3c,T(w3) = sbox(shiftrow(w3)) ^ rcon[i]
262+
循环左移1位 -> cf4f3c09
263+
S表替换 -> 8a84eb01
264+
con表异或 -> 8b84eb01(rcon表固定的,rcon表=01000000、02000000)
265+
最后 w4 = 8b84eb01 ^ w0 = a0fafe17
266+
w5的计算:
267+
w5 = w4 ^ w1 = a0fafe17 ^ w1
268268
```
269269
270270
![11](./pic/11.png)\
271271
272272
ida中特征:
273-
274273
> w43也是密钥扩展的特征,比如 <=43
275274
> <<31 分单双数
276275
> <<30 看是否为4的倍数
@@ -279,20 +278,18 @@ ida中特征:
279278
280279
```
281280
一个AES算法我们要关注哪些内容?
282-
是AES-128 还是 AES-192 还是 AES-256
283-
明文是什么
284-
密钥是什么
285-
什么模式 ECB还是CBC还是其他
286-
如果是非ECB模式,那么IV是什么
287-
明文填充模式呢,是PCKS#7吗?
281+
是AES-128 还是 AES-192 还是 AES-256
282+
明文是什么
283+
密钥是什么
284+
什么模式 ECB还是CBC还是其他
285+
如果是非ECB模式,那么IV是什么
286+
明文填充模式呢,是PCKS#7吗?
288287
```
289288
290289
1. 调用open_ssl封装的EVP。传入结构体,百度搜索,查看参数信息。
291-
292290
![1](./pic/1.png)
293291
294292
2. 直接使用底层的代码,通过hook各个函数,得到信息。
295-
296293
![2](./pic/2.png)
297294
298295
#### 拓展
@@ -311,12 +308,12 @@ RSA + AES:混合加密
311308
findcrypt 可以找到特征
312309

313310
逆S盒:https://bbs.pediy.com/thread-266410.htm
314-
S盒 用来加密
315-
00 0x90
316-
逆S盒 用来解密
317-
第9行 第0列 为 00
318-
new_contrary_sbox = [0]*256
319-
311+
S盒 用来加密
312+
00 0x90
313+
逆S盒 用来解密
314+
第9行 第0列 为 00
315+
new_contrary_sbox = [0]*256
316+
320317
for i in range(256):
321318
line = (new_s_box[i]&0xf0)>>4
322319
rol = new_s_box[i]&0xf
@@ -407,8 +404,8 @@ hex
407404
1-9轮 把subBytes、shiftRows、mixcolumn前三个步骤混在一起去了所以用T。
408405
最面一轮没有mixcolumn,不能用上面混合后的表了,这时候两种方式:可以新增一个新的混合表或者分开来算 s-box、循环左移、state xor 密钥。
409406
为什么查表法不把addroudkey 和前三步放在一起呢?
410-
因为addroudkey 密钥是我们生成的,可能会变化, 混合表已经是固定的,所以放不进去。
411-
怎么把key也放进去? 就是aes白盒--加重混淆,即使有源码都无法简简单单还原出key。
407+
因为addroudkey 密钥是我们生成的,可能会变化, 混合表已经是固定的,所以放不进去。
408+
怎么把key也放进去? 就是aes白盒--加重混淆,即使有源码都无法简简单单还原出key。
412409
https://bbs.pediy.com/thread-267330.htm
413410
```
414411

0 commit comments

Comments
 (0)