首页
社区
课程
招聘
[分享]第一题关键位置
发表于: 2017-6-2 11:33 2022

[分享]第一题关键位置

2017-6-2 11:33
2022


CPU Disasm

Address   Hex dump          Command                                  Comments

00401225   .  83F8 04       CMP EAX,4

00401228   .  59            POP ECX

00401229   .  0F85 A0000000 JNE 004012CF

0040122F   .  6A 30         PUSH 30

00401231   .  59            POP ECX

00401232   .  384D E4       CMP BYTE PTR SS:[EBP-1C],CL

00401235   .  0F84 94000000 JE 004012CF

0040123B   .  384D E5       CMP BYTE PTR SS:[EBP-1B],CL

0040123E   .  0F84 8B000000 JE 004012CF

00401244   .  384D E6       CMP BYTE PTR SS:[EBP-1A],CL

00401247   .  0F84 82000000 JE 004012CF

0040124D   .  384D E7       CMP BYTE PTR SS:[EBP-19],CL

//以上可以判断长度为4 并且所有数据不为0

00401250   .  74 7D         JE SHORT 004012CF

00401252   .  807D E4 31    CMP BYTE PTR SS:[EBP-1C],31

00401256   .  75 77         JNE SHORT 004012CF

00401258   .  807D E5 35    CMP BYTE PTR SS:[EBP-1B],35

0040125C   .  75 71         JNE SHORT 004012CF

0040125E   .  74 03         JE SHORT 00401263

00401260   .  75 01         JNE SHORT 00401263

//以上可以获得前两位不为15直接跳转error

CPU Disasm

Address   Hex dump          Command                                  Comments

0040126B   .  0FBE45 E6     MOVSX EAX,BYTE PTR SS:[EBP-1A]

0040126F   .  2BC1          SUB EAX,ECX

00401271   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

00401274   .  0FBE45 E4     MOVSX EAX,BYTE PTR SS:[EBP-1C]

00401278   .  DB45 FC       FILD DWORD PTR SS:[EBP-4]

0040127B   .  2BC1          SUB EAX,ECX

0040127D   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

00401280   .  0FBE45 E5     MOVSX EAX,BYTE PTR SS:[EBP-1B]

00401284   .  DB45 FC       FILD DWORD PTR SS:[EBP-4]

00401287   .  2BC1          SUB EAX,ECX

00401289   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

0040128C   .  DA75 FC       FIDIV DWORD PTR SS:[EBP-4]

0040128F   .  0FBE45 E7     MOVSX EAX,BYTE PTR SS:[EBP-19]

00401293   .  2BC1          SUB EAX,ECX

00401295   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX

00401298   .  DEE9          FSUBP ST(1),ST

0040129A   .  DA4D FC       FIMUL DWORD PTR SS:[EBP-4]

0040129D   .  D80D 1C714000 FMUL DWORD PTR DS:[40711C]               ; FLOAT 16.00000

004012A3   .  D95D FC       FSTP DWORD PTR SS:[EBP-4]

004012A6   .  74 03         JE SHORT 004012AB

004012A8   .  75 01         JNE SHORT 004012AB

004012AA      E8            DB E8

004012AB  />  66:B8 0800    MOV AX,8

004012AF  |.  66:35 0700    XOR AX,0007

004012B3  |.  D945 FC       FLD DWORD PTR SS:[EBP-4]

004012B6  |.  D81D 18714000 FCOMP DWORD PTR DS:[407118]              ; FLOAT 384.0000

004012BC  |.  6A 00         PUSH 0

//以上的实际步骤推论

1、取第3位的十六进制值,然后减去0x30,这里则假定值为a

2、取第1位值为“1”的十六进制值即0x31,然后减去0x30,0x31-0x30 =1

3、取第2位值为“5”的十六进制值即0x35,然后减去0x30,0x31-0x30 =5 ,接着就是1除以5得出浮点数0.2

4、取第4位的十六进制值,然后减去0x30,这里则假定值为b

5、接着就是(a-0.2)*b乘以16得出的结果为c

6、判断c与384是否相等,相等则Registration successful !,不相同则“error”

获取公式:(a-0.2)*b*16 = 384求解a和b


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回