📄 main.txt
字号:
;;;149 }
;;;150 /* Send APDU Command for ICCID selection */
;;;151 SC_ADPU.Header.CLA = SC_CLA_GSM11;
00016c 702e STRB r6,[r5,#0] ; SC_ADPU
;;;152 SC_ADPU.Header.INS = SC_SELECT_FILE;
00016e f885f885 STRB r8,[r5,#1] ; SC_ADPU
;;;153 SC_ADPU.Header.P1 = 0x00;
000172 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;154 SC_ADPU.Header.P2 = 0x00;
000174 70ec STRB r4,[r5,#3] ; SC_ADPU
;;;155 SC_ADPU.Body.LC = 0x02;
;;;156
;;;157 for(i = 0; i < SC_ADPU.Body.LC; i++)
000176 4b8d LDR r3,|L3.940|
000178 f885f885 STRB r9,[r5,#4] ; SC_ADPU
00017c 1d1b ADDS r3,r3,#4
00017e 613c STR r4,[r7,#0x10] ; i
|L3.384|
;;;158 {
;;;159 SC_ADPU.Body.Data[i] = ICCID[i];
000180 6938 LDR r0,[r7,#0x10] ; i
000182 5c19 LDRB r1,[r3,r0]
000184 182a ADDS r2,r5,r0
000186 7151 STRB r1,[r2,#5]
000188 1c40 ADDS r0,r0,#1
00018a 6138 STR r0,[r7,#0x10] ; i
00018c 7929 LDRB r1,[r5,#4] ; SC_ADPU
00018e 4281 CMP r1,r0
000190 d8f6 BHI |L3.384|
000192 e003 B |L3.412|
|L3.404|
;;;160 }
;;;161 while(i < LCmax)
;;;162 {
;;;163 SC_ADPU.Body.Data[i++] = 0;
000194 1829 ADDS r1,r5,r0
000196 714c STRB r4,[r1,#5]
000198 1c40 ADDS r0,r0,#1
00019a 6138 STR r0,[r7,#0x10] ; i
|L3.412|
00019c 2814 CMP r0,#0x14
00019e d3f9 BCC |L3.404|
;;;164 }
;;;165 SC_ADPU.Body.LE = 0;
;;;166
;;;167 SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
0001a0 4a80 LDR r2,|L3.932|
0001a2 766c STRB r4,[r5,#0x19] ; SC_ADPU
0001a4 f1a2f1a2 SUB r1,r2,#0x1a
0001a8 a802 ADD r0,sp,#8
0001aa f7fff7ff BL SC_Handler
|L3.430|
;;;168 }
;;;169
;;;170 /* Read Binary in ICCID --------------------------------------------------*/
;;;171 if(SC_Responce.SW1 == SC_EF_SELECTED)
0001ae f89bf89b LDRB r0,[r11,#0x14] ; SC_Responce
0001b2 289f CMP r0,#0x9f
0001b4 d10d BNE |L3.466|
;;;172 {
;;;173 SC_ADPU.Header.CLA = SC_CLA_GSM11;
0001b6 702e STRB r6,[r5,#0] ; SC_ADPU
;;;174 SC_ADPU.Header.INS = SC_READ_BINARY;
0001b8 20b0 MOVS r0,#0xb0
0001ba 7068 STRB r0,[r5,#1] ; SC_ADPU
;;;175 SC_ADPU.Header.P1 = 0x00;
0001bc 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;176 SC_ADPU.Header.P2 = 0x00;
0001be 70ec STRB r4,[r5,#3] ; SC_ADPU
;;;177 SC_ADPU.Body.LC = 0x00;
0001c0 712c STRB r4,[r5,#4] ; SC_ADPU
;;;178
;;;179 SC_ADPU.Body.LE = 10;
0001c2 200a MOVS r0,#0xa
;;;180
;;;181 SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
0001c4 4a77 LDR r2,|L3.932|
0001c6 7668 STRB r0,[r5,#0x19] ; SC_ADPU
0001c8 f1a2f1a2 SUB r1,r2,#0x1a
0001cc a802 ADD r0,sp,#8
0001ce f7fff7ff BL SC_Handler
|L3.466|
;;;182 }
;;;183
;;;184 /* Select GSMDir ---------------------------------------------------------*/
;;;185 if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
0001d2 f8bbf8bb LDRH r0,[r11,#0x14] ; SC_Responce
0001d6 ba40 REV16 r0,r0
0001d8 4550 CMP r0,r10
0001da d12d BNE |L3.568|
;;;186 {
;;;187 /* Copy the ICCID File content into ICCID_Content buffer */
;;;188 for(i = 0; i < SC_ADPU.Body.LE; i++)
0001dc 4a71 LDR r2,|L3.932|
0001de 613c STR r4,[r7,#0x10] ; i
0001e0 3a2d SUBS r2,r2,#0x2d
0001e2 7e6b LDRB r3,[r5,#0x19]
0001e4 4620 MOV r0,r4
0001e6 e004 B |L3.498|
|L3.488|
;;;189 {
;;;190 ICCID_Content[i] = SC_Responce.Data[i];
0001e8 f81bf81b LDRB r1,[r11,r0]
0001ec 5411 STRB r1,[r2,r0]
0001ee 1c40 ADDS r0,r0,#1
0001f0 6138 STR r0,[r7,#0x10] ; i
|L3.498|
0001f2 4283 CMP r3,r0
0001f4 d8f8 BHI |L3.488|
;;;191 }
;;;192 /* Send APDU Command for GSMDir selection */
;;;193 SC_ADPU.Header.CLA = SC_CLA_GSM11;
0001f6 702e STRB r6,[r5,#0] ; SC_ADPU
;;;194 SC_ADPU.Header.INS = SC_SELECT_FILE;
0001f8 f885f885 STRB r8,[r5,#1] ; SC_ADPU
;;;195 SC_ADPU.Header.P1 = 0x00;
0001fc 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;196 SC_ADPU.Header.P2 = 0x00;
0001fe 70ec STRB r4,[r5,#3] ; SC_ADPU
;;;197 SC_ADPU.Body.LC = 0x02;
;;;198
;;;199 for(i = 0; i < SC_ADPU.Body.LC; i++)
000200 4b6a LDR r3,|L3.940|
000202 f885f885 STRB r9,[r5,#4] ; SC_ADPU
000206 1c9b ADDS r3,r3,#2
000208 613c STR r4,[r7,#0x10] ; i
|L3.522|
;;;200 {
;;;201 SC_ADPU.Body.Data[i] = GSMDir[i];
00020a 6938 LDR r0,[r7,#0x10] ; i
00020c 5c19 LDRB r1,[r3,r0]
00020e 182a ADDS r2,r5,r0
000210 7151 STRB r1,[r2,#5]
000212 1c40 ADDS r0,r0,#1
000214 6138 STR r0,[r7,#0x10] ; i
000216 7929 LDRB r1,[r5,#4] ; SC_ADPU
000218 4281 CMP r1,r0
00021a d8f6 BHI |L3.522|
00021c e003 B |L3.550|
|L3.542|
;;;202 }
;;;203 while(i < LCmax)
;;;204 {
;;;205 SC_ADPU.Body.Data[i++] = 0;
00021e 1829 ADDS r1,r5,r0
000220 714c STRB r4,[r1,#5]
000222 1c40 ADDS r0,r0,#1
000224 6138 STR r0,[r7,#0x10] ; i
|L3.550|
000226 2814 CMP r0,#0x14
000228 d3f9 BCC |L3.542|
;;;206 }
;;;207 SC_ADPU.Body.LE = 0;
;;;208
;;;209 SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
00022a 4a5e LDR r2,|L3.932|
00022c 766c STRB r4,[r5,#0x19] ; SC_ADPU
00022e f1a2f1a2 SUB r1,r2,#0x1a
000232 a802 ADD r0,sp,#8
000234 f7fff7ff BL SC_Handler
|L3.568|
;;;210 }
;;;211
;;;212 /* Select IMSI -----------------------------------------------------------*/
;;;213 if(SC_Responce.SW1 == SC_DF_SELECTED)
000238 f89bf89b LDRB r0,[r11,#0x14] ; SC_Responce
00023c 289f CMP r0,#0x9f
00023e d133 BNE |L3.680|
;;;214 {
;;;215 SC_ADPU.Header.CLA = SC_CLA_GSM11;
000240 702e STRB r6,[r5,#0] ; SC_ADPU
;;;216 SC_ADPU.Header.INS = SC_SELECT_FILE;
000242 f885f885 STRB r8,[r5,#1] ; SC_ADPU
;;;217 SC_ADPU.Header.P1 = 0x00;
000246 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;218 SC_ADPU.Header.P2 = 0x00;
000248 70ec STRB r4,[r5,#3] ; SC_ADPU
;;;219 SC_ADPU.Body.LC = 0x02;
;;;220
;;;221 for(i = 0; i < SC_ADPU.Body.LC; i++)
00024a 4b58 LDR r3,|L3.940|
00024c f885f885 STRB r9,[r5,#4] ; SC_ADPU
000250 1d9b ADDS r3,r3,#6
000252 613c STR r4,[r7,#0x10] ; i
|L3.596|
;;;222 {
;;;223 SC_ADPU.Body.Data[i] = IMSI[i];
000254 6938 LDR r0,[r7,#0x10] ; i
000256 5c19 LDRB r1,[r3,r0]
000258 182a ADDS r2,r5,r0
00025a 7151 STRB r1,[r2,#5]
00025c 1c40 ADDS r0,r0,#1
00025e 6138 STR r0,[r7,#0x10] ; i
000260 7929 LDRB r1,[r5,#4] ; SC_ADPU
000262 4281 CMP r1,r0
000264 d8f6 BHI |L3.596|
000266 e003 B |L3.624|
|L3.616|
;;;224 }
;;;225 while(i < LCmax)
;;;226 {
;;;227 SC_ADPU.Body.Data[i++] = 0;
000268 1829 ADDS r1,r5,r0
00026a 714c STRB r4,[r1,#5]
00026c 1c40 ADDS r0,r0,#1
00026e 6138 STR r0,[r7,#0x10] ; i
|L3.624|
000270 2814 CMP r0,#0x14
000272 d3f9 BCC |L3.616|
;;;228 }
;;;229 SC_ADPU.Body.LE = 0;
;;;230
;;;231 SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
000274 4a4b LDR r2,|L3.932|
000276 766c STRB r4,[r5,#0x19] ; SC_ADPU
000278 f1a2f1a2 SUB r1,r2,#0x1a
00027c a802 ADD r0,sp,#8
00027e f7fff7ff BL SC_Handler
;;;232 }
;;;233
;;;234 /* Get Response on IMSI File ---------------------------------------------*/
;;;235 if(SC_Responce.SW1 == SC_EF_SELECTED)
000282 f89bf89b LDRB r0,[r11,#0x14] ; SC_Responce
000286 289f CMP r0,#0x9f
000288 d10e BNE |L3.680|
;;;236 {
;;;237 SC_ADPU.Header.CLA = SC_CLA_GSM11;
00028a 702e STRB r6,[r5,#0] ; SC_ADPU
;;;238 SC_ADPU.Header.INS = SC_GET_RESPONCE;
00028c 20c0 MOVS r0,#0xc0
00028e 7068 STRB r0,[r5,#1] ; SC_ADPU
;;;239 SC_ADPU.Header.P1 = 0x00;
000290 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;240 SC_ADPU.Header.P2 = 0x00;
000292 70ec STRB r4,[r5,#3] ; SC_ADPU
;;;241 SC_ADPU.Body.LC = 0x00;
000294 712c STRB r4,[r5,#4] ; SC_ADPU
;;;242 SC_ADPU.Body.LE = SC_Responce.SW2;
000296 f89bf89b LDRB r0,[r11,#0x15] ; SC_Responce
;;;243
;;;244 SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
00029a 4a42 LDR r2,|L3.932|
00029c 7668 STRB r0,[r5,#0x19] ; SC_ADPU
00029e f1a2f1a2 SUB r1,r2,#0x1a
0002a2 a802 ADD r0,sp,#8
0002a4 f7fff7ff BL SC_Handler
|L3.680|
;;;245 }
;;;246
;;;247 /* Read Binary in IMSI ---------------------------------------------------*/
;;;248 if(CHV1Status == 0x00)
0002a8 68f8 LDR r0,[r7,#0xc] ; CHV1Status
0002aa 2800 CMP r0,#0
;;;249 {
;;;250 if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
0002ac f8bbf8bb LDRH r0,[r11,#0x14] ; SC_Responce
0002b0 ba40 REV16 r0,r0
0002b2 d11d BNE |L3.752|
0002b4 4550 CMP r0,r10
0002b6 d13f BNE |L3.824|
;;;251 {
;;;252 /* Enable CHV1 (PIN1) ------------------------------------------------*/
;;;253 SC_ADPU.Header.CLA = SC_CLA_GSM11;
0002b8 702e STRB r6,[r5,#0] ; SC_ADPU
;;;254 SC_ADPU.Header.INS = SC_ENABLE;
0002ba 2028 MOVS r0,#0x28
0002bc 7068 STRB r0,[r5,#1] ; SC_ADPU
;;;255 SC_ADPU.Header.P1 = 0x00;
0002be 70ac STRB r4,[r5,#2] ; SC_ADPU
;;;256 SC_ADPU.Header.P2 = 0x01;
0002c0 2001 MOVS r0,#1
0002c2 70e8 STRB r0,[r5,#3] ; SC_ADPU
;;;257 SC_ADPU.Body.LC = 0x08;
0002c4 2008 MOVS r0,#8
;;;258
;;;259 for(i = 0; i < SC_ADPU.Body.LC; i++)
0002c6 4b39 LDR r3,|L3.940|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -