📄 mifareproexcute.src
字号:
; SOURCE LINE # 101
?C0019:
; prostatus = MProCard153InitAuth(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 102
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCard153InitAuth?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCard153InitAuth
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 103
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 104
; buflen=*len;
; SOURCE LINE # 105
?C0050:
; return buflen;
; SOURCE LINE # 106
LJMP ?C0060
; }
; SOURCE LINE # 107
; break;
; SOURCE LINE # 108
; case CMD_153_VRF_AUTH:
; SOURCE LINE # 109
?C0021:
; prostatus = MProCard153VrfAuth(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 110
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCard153VrfAuth?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCard153VrfAuth
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 111
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 112
; buflen=*len;
; SOURCE LINE # 113
?C0051:
; return buflen;
; SOURCE LINE # 114
LJMP ?C0060
; }
; SOURCE LINE # 115
; break;
; SOURCE LINE # 116
; case CMD_153_WR_FUSE:
; SOURCE LINE # 117
?C0023:
; prostatus = MProCardWrFuse(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 118
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCardWrFuse?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCardWrFuse
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 119
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 120
; buflen=*len;
; SOURCE LINE # 121
?C0052:
; return buflen;
; SOURCE LINE # 122
LJMP ?C0060
; }
; SOURCE LINE # 123
; break;
; SOURCE LINE # 124
; case CMD_153_RD_FUSE:
; SOURCE LINE # 125
?C0025:
; prostatus = MProCard153RdFuse(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 126
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCard153RdFuse?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCard153RdFuse
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 127
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 128
; buflen=*len;
; SOURCE LINE # 129
?C0053:
; return buflen;
; SOURCE LINE # 130
LJMP ?C0060
; }
; SOURCE LINE # 131
; break;
; SOURCE LINE # 132
;
;
;
; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
; //这几个函数处理必须注意!
;
;
;
; case CMD_SLE_RD_MMEM: // UDP: Address
; SOURCE LINE # 141
?C0027:
; prostatus = MProCardSleRdMmem(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 142
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCardSleRdMmem?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCardSleRdMmem
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 143
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 144
; buflen=*len;
; SOURCE LINE # 145
?C0054:
; return buflen;
; SOURCE LINE # 146
LJMP ?C0060
; }
; SOURCE LINE # 147
; break;
; SOURCE LINE # 148
;
; case CMD_SLE_UPD_MMEM: // UDP: address + data
; SOURCE LINE # 150
?C0029:
; prostatus = MProCardSleUpdMmem(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 151
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCardSleUpdMmem?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCardSleUpdMmem
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 152
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 153
; buflen=*len;
; SOURCE LINE # 154
?C0055:
; return buflen;
; SOURCE LINE # 155
LJMP ?C0060
; }
; SOURCE LINE # 156
; break;
; SOURCE LINE # 157
;
; /**
; case CMD_SLE_RD_PMEM: // UDP: NULL
; prostatus = MProCardSleRdPmem(unsigned *CmdBuf,unsigned int buflen); //形式参数待定.
; if(prostatus == MI_OK)
; {
; buflen=*len;
; return buflen;
; }
; break;
;
; case CMD_SLE_UPD_PMEM: // UDP: address + data
; prostatus = MProCardSleUpdPmem(unsigned *CmdBuf,unsigned int buflen); //形式参数待定.
; if(prostatus == MI_OK)
; {
; buflen=*len;
; return buflen;
; }
; break;
; case CMD_SLE_RD_SMEM: // UDP: NULL
; prostatus = MProCardSleRdSmem(unsigned *CmdBuf,unsigned int buflen); //形式参数待定.
; if(prostatus == MI_OK)
; {
; buflen=*len;
; return buflen;
; }
; break;
;
; case CMD_SLE_UPD_SMEM: // UDP: address + data
; prostatus = MProCardSLeUpdSmem(unsigned *CmdBuf,unsigned int buflen); //形式参数待定.
; if(prostatus == MI_OK)
; {
; buflen=*len;
; return buflen;
; }
; break;
; **/
;
;
; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;
;
;
; case CMD_SLE_VERIFY: // UDP: address + data
; SOURCE LINE # 201
?C0031:
; prostatus = MProCardSLeVerify(CmdBuf,len); //形式参数待定.
; SOURCE LINE # 202
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_MProCardSLeVerify?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _MProCardSLeVerify
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 203
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 204
; buflen=*len;
; SOURCE LINE # 205
?C0056:
; return buflen;
; SOURCE LINE # 206
LJMP ?C0060
; }
; SOURCE LINE # 207
; break;
; SOURCE LINE # 208
;
;
;
; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
;
;
;
; case GETUID:
; SOURCE LINE # 216
?C0033:
; prostatus = EvalOS_GetUID(CmdBuf,len);
; SOURCE LINE # 217
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetUID?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetUID
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 218
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 219
; buflen=*len;
; SOURCE LINE # 220
?C0057:
; return buflen;
; SOURCE LINE # 221
LJMP ?C0060
; }
; SOURCE LINE # 222
; break;
; SOURCE LINE # 223
;
; case GETCHIPINFO:
; SOURCE LINE # 225
?C0035:
; prostatus = EvalOS_GetChipInfo(CmdBuf,len);
; SOURCE LINE # 226
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetChipInfo?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetChipInfo
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 227
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 228
; buflen=*len;
; SOURCE LINE # 229
?C0058:
; return buflen;
; SOURCE LINE # 230
LJMP ?C0060
; }
; SOURCE LINE # 231
; break;
; SOURCE LINE # 232
;
; case GETROMINFO:
; SOURCE LINE # 234
?C0037:
; prostatus = EvalOS_GetRomInfo(CmdBuf,len);
; SOURCE LINE # 235
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetRomInfo?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetRomInfo
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
; if(prostatus == MI_OK)
; SOURCE LINE # 236
JZ $ + 5H
LJMP ?C0004
; {
; SOURCE LINE # 237
; buflen=*len;
; SOURCE LINE # 238
?C0059:
; return buflen;
; SOURCE LINE # 239
LJMP ?C0060
; }
; SOURCE LINE # 240
; break;
; SOURCE LINE # 241
;
; case DORSAENCRYPT:
; SOURCE LINE # 243
?C0039:
; if( (EvalOS_GetUID(CmdBuf,len) == MI_OK)
; SOURCE LINE # 244
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetUID?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetUID
MOV A,R7
JNZ ?C0040
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetChipInfo?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetChipInfo
MOV A,R7
JNZ ?C0040
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_GetRomInfo?BYTE+03H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL _EvalOS_GetRomInfo
MOV A,R7
JNZ ?C0040
; && (EvalOS_GetChipInfo(CmdBuf,len) == MI_OK)
; && (EvalOS_GetRomInfo(CmdBuf,len) == MI_OK)
; )
; prostatus = EvalOS_RSAEncpDecp(CmdBuf,1,64,len); //注意buflen的大小!
; SOURCE LINE # 248
MOV DPTR,#?_EvalOS_RSAEncpDecp?BYTE+04H
MOV A,#040H
MOVX @DPTR,A
MOV DPTR,#len?044
MOVX A,@DPTR
MOV R1,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPTR,#?_EvalOS_RSAEncpDecp?BYTE+05H
XCH A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
MOV DPTR,#CmdBuf?040
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV R5,#01H
LCALL _EvalOS_RSAEncpDecp
MOV DPTR,#prostatus?042
MOV A,R7
MOVX @DPTR,A
?C0040:
; if(prostatus == MI_OK)
; SOURCE LINE # 249
MOV DPTR,#prostatus?042
MOVX A,@DPTR
JNZ ?C0004
; {
; SOURCE LINE # 250
; buflen=*len;
; SOURCE LINE # 251
?C0060:
INC DPTR
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
LCALL ?C?ILDPTR
MOV R7,A
MOV R6,B
MOV DPTR,#buflen?041
MOV A,R6
MOVX @DPTR,A
INC DPTR
MOV A,R7
MOVX @DPTR,A
; return buflen;
; SOURCE LINE # 252
; }
; SOURCE LINE # 253
; break;
; SOURCE LINE # 254
;
; default:
; SOURCE LINE # 256
; break;
; SOURCE LINE # 257
;
;
; }
; SOURCE LINE # 260
;
;
; } ; SOURCE LINE # 263
?C0004:
RET
; END OF _MifareProExcute
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -