接着上面说的5个字符一组,每组字符相应的处理如下两个函数(函数会对传入的值进行转换)。
所以楼主构造字符集在每组对应的位置,应避免出现被转换的字符,当然也可以利用转换来得到想要的结果。
至于你要的转换程序,我就不想写了,这里教你一个手工转换的方法:
在文本里写上想要的字,然后用16进制编辑器打开文本就是想要的编码了。最后别忘了转换规则就行了。
这个程序就到这里了。不知道楼主是学什么专业的
00401AF0 /$ 8A4424 04 MOV AL,BYTE PTR SS:[ESP+4] ; 一组中第1、3个字符传值
00401AF4 |. 3C 30 CMP AL,30 ; '0'
00401AF6 |. 75 03 JNZ SHORT 密码锁.00401AFB
00401AF8 |. B0 41 MOV AL,41 ; => 'A'
00401AFA |. C3 RETN
00401AFB |> 3C 31 CMP AL,31 ; '1'
00401AFD |. 75 03 JNZ SHORT 密码锁.00401B02
00401AFF |. B0 42 MOV AL,42 ; => 'B'
00401B01 |. C3 RETN
00401B02 |> 3C 32 CMP AL,32 ; '2'
00401B04 |. 75 03 JNZ SHORT 密码锁.00401B09
00401B06 |. B0 43 MOV AL,43 ; => 'C'
00401B08 |. C3 RETN
00401B09 |> 3C 33 CMP AL,33 ; '3'
00401B0B |. 75 03 JNZ SHORT 密码锁.00401B10
00401B0D |. B0 44 MOV AL,44 ; => 'D'
00401B0F |. C3 RETN
00401B10 |> 3C 38 CMP AL,38 ; '8'
00401B12 |. 75 03 JNZ SHORT 密码锁.00401B17
00401B14 |. B0 45 MOV AL,45 ; => 'E'
00401B16 |. C3 RETN
00401B17 |> 3C 39 CMP AL,39 ; '9'
00401B19 |. 75 02 JNZ SHORT 密码锁.00401B1D
00401B1B |. B0 46 MOV AL,46 ; => 'F'
00401B1D \> C3 RETN
00401B1E 90 NOP
00401B1F 90 NOP
00401B20 /$ 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
00401B24 |. 85C0 TEST EAX,EAX
00401B26 |. 8A4424 04 MOV AL,BYTE PTR SS:[ESP+4] ; 一组中第2、4个字符传值
00401B2A |. 74 29 JE SHORT 密码锁.00401B55
00401B2C |. 3C 34 CMP AL,34 ; '4'
00401B2E |. 75 03 JNZ SHORT 密码锁.00401B33
00401B30 |. B0 41 MOV AL,41 ; => 'A'
00401B32 |. C3 RETN
00401B33 |> 3C 35 CMP AL,35 ; '5'
00401B35 |. 75 03 JNZ SHORT 密码锁.00401B3A
00401B37 |. B0 42 MOV AL,42 ; => 'B'
00401B39 |. C3 RETN
00401B3A |> 3C 36 CMP AL,36 ; '6'
00401B3C |. 75 03 JNZ SHORT 密码锁.00401B41
00401B3E |. B0 43 MOV AL,43 ; => 'C'
00401B40 |. C3 RETN
00401B41 |> 3C 37 CMP AL,37 ; '7'
00401B43 |. 75 03 JNZ SHORT 密码锁.00401B48
00401B45 |. B0 44 MOV AL,44 ; => 'D'
00401B47 |. C3 RETN
00401B48 |> 3C 33 CMP AL,33 ; '3'
00401B4A |. 75 03 JNZ SHORT 密码锁.00401B4F
00401B4C |. B0 45 MOV AL,45 ; => 'E'
00401B4E |. C3 RETN
00401B4F |> 3C 32 CMP AL,32 ; '2'
00401B51 |. 75 02 JNZ SHORT 密码锁.00401B55
00401B53 |. B0 46 MOV AL,46 ; => 'F'