View Full Version : Couple of Sentinel SPRO questions
1) Anybody know what is at the byte at offset 0xE3 in the API Packet please?.
2) Function Codes 0x02 and 0x03. These two functions aren't documented and don't seem to be referred to often so it's no surprise there is confusioin over them. Basically, I have seen :
RNBOsproGetUnitInfo equ 2
RNBOsproSetUnitInfo equ 3
and I have seen
RNBOsproSetUnitInfo equ 2
RNBOsproGetUnitInfo equ 3
Does anybody know definitively which definitions are correct please?. Also, any information on their behaviour would be useful, thanks.
Git
ngoksun
11-05-2007, 11:13 PM
1) Anybody know what is at the byte at offset 0xE3 in the API Packet please?.
2) Function Codes 0x02 and 0x03. These two functions aren't documented and don't seem to be referred to often so it's no surprise there is confusioin over them. Basically, I have seen :
RNBOsproGetUnitInfo equ 2
RNBOsproSetUnitInfo equ 3
and I have seen
RNBOsproSetUnitInfo equ 2
RNBOsproGetUnitInfo equ 3
Does anybody know definitively which definitions are correct please?. Also, any information on their behaviour would be useful, thanks.
Git
Hi Git,
For your first question, I don't clear know what your mean, as I know, the API package haven't so long (0xE3?).
For the second question, the correct function code for SuperPro was:
RNBOsproGetUnitInfo equ 2
RNBOsproSetUnitInfo equ 3
But for other type of Sentinel dongle, it's different, for example: the Sentinel Pro should be:
RNBOproSetUnitInfo equ 02
RNBOproGetUnitInfo equ 03
and the C-Plus should be:
RNBOcplusSetUnitInfo equ 02
RNBOcplusGetUnitInfo equ 03
For the details of all this functions, you can find it at cEnginEEr's reversed Softkey SentEmul2007 unscarambled code. It include all info what you wanted. ;)
Regards!
ngoksun
@ngoksun:
even i can see the query/respose secret?
regards
ngoksun
11-06-2007, 02:58 AM
What's your mean the query/respose secret? ;) For Query function details, the answer is Yes. For Solve the algo, maybe you need more mathematics and code knowledge.
yup i mean complete query/response function..., still struggling to solve the algo :confused:
Thanks ngoksun. The length of the package is actually 0x404 bytes for version 6 and 7 packets and I believe it can be a few bytes longer for later packets.
It seems very odd that they would keep swapping the value of the functions 2 and 3, there's just no sense behind it. May I ask the source of your info please?.
To look inside cengineer (or anybody else) emulator and find a DbgPrint("RNBOsproGetUnitInfo ...\n") inside the functionCode 2 address tells you and me only that it was the opinon of that author that RNBOsproGetUnitInfo equ 2. I have looked inside several emulators and talked to other emulator authors and got different opinions, hence my original post. This is why I asked if anybody knows *definitively* the answer. Eg, from an original early SDK header file before they hid this information, or from a leaked Debug version of a genuine Sentinel driver with the above DbgPrint statement or similar.
If anybody still has that early header file, I would love to get hold of it. Thanks.
Git
As an example of what I mean, I finally found the information below, which was taken from a post by the original author of the emulator that EDGE released. Notice that SetUnit is consistently 2 for the four dongles that define it, but look at the comments for SuperPro - they are the opposite!
;
; Sentinel SuperPro internal functions
;
fn_SPRO_INITIALIZE = 00h ; RNBOsproInitialize
fn_SPRO_GETVERSION = 01h ; RNBOsproGetVersion
fn_SPRO_SET_UNIT_INFO = 02h ; RNBOsproGetUnitInfo
fn_SPRO_GET_UNIT_INFO = 03h ; RNBOsproSetUnitInfo
fn_SPRO_CFG_LIB_PARAMS = 06h ; RNBOsproCfgLibParams
fn_SPRO_FIND_1ST_UNIT = 08h ; RNBOsproFindFirstUnit
fn_SPRO_FIND_NEXT_UNIT = 09h ; RNBOsproFindNextUnit
fn_SPRO_READ = 0Ah ; RNBOsproRead
fn_SPRO_EXT_READ = 0Bh ; RNBOsproExtendedRead
fn_SPRO_DECREMENT = 0Ch ; RNBOsproDecrement
fn_SPRO_WRITE = 0Dh ; RNBOsproWrite
fn_SPRO_OVERWRITE = 0Eh ; RNBOsproOverwrite
fn_SPRO_ACTIVATE = 0Fh ; RNBOsproActivate
fn_SPRO_QUERY = 10h ; RNBOsproQuery
fn_SPRO_GET_HARDLIMIT = 11h ; RNBOsproGetHardLimit
;
; Sentinel Scribe internal functions
;
fn_SK_INITIALIZE = 00h ; RNBOskInitialize
fn_SK_GETVERSION = 01h ; RNBOskGetVersion
fn_SK_SET_UNIT_INFO = 02h ; RNBOskGetUnitInfo
fn_SK_GET_UNIT_INFO = 03h ; RNBOskGetUnitInfo
fn_SK_CFG_LIB_PARAMS = 07h ; RNBOskCfgLibParams
fn_SK_READ = 0Bh ; RNBOskRead
fn_SK_WRITE = 0Ch ; RNBOskWrite
fn_SK_ENABLE = 0Dh ; RNBOskEnable
;
; Sentinel Pro internal functions
;
fn_PRO_INITIALIZE = 00 ; RNBOproInitialize
fn_PRO_GETVERSION = 01 ; RNBOproGetVersion
fn_PRO_SET_UNIT_INFO = 02 ; RNBOproSetUnitInfo
fn_PRO_GET_UNIT_INFO = 03 ; RNBOproGetUnitInfo
fn_PRO_FN4 = 04
fn_PRO_FN5 = 05
fn_PRO_CFG_LIB_PARAMS = 06 ; RNBOproCfgLibParams
fn_PRO_QUERY = 09 ; RNBOproQuery
;
; Sentinel C-Plus internal functions
;
fn_CPLUS_INITIALIZE = 00 ; RNBOcplusInitialize
fn_CPLUS_GETVERSION = 01 ; RNBOcplusGetVersion
fn_CPLUS_SET_UNIT_INFO = 02 ; RNBOcplusSetUnitInfo
fn_CPLUS_GET_UNIT_INFO = 03 ; RNBOcplusGetUnitInfo
fn_CPLUS_CFG_LIB_PARAMS = 06 ; RNBOcplusCfgLibParams
fn_CPLUS_READ = 09 ; RNBOcplusRead
;
; Sentinel NetSentinelPro internal functions
;
fn_NPRO_INITIALIZE = 0
fn_NPRO_GETVERSION = 1
fn_NPRO_SET_KEY_CFG = 3
fn_NPRO_CFG_LIB_PARAMS = 7
fn_NPRO_QUERY = 9
fn_NPRO_FIND_1ST_UNIT = 0Ah
fn_NPRO_FIND_NEXT_UNIT = 0Bh
fn_NPRO_GET_ALGO_ID = 0Ch
fn_NPRO_CHECK_FOR_DUP = 0Dh
;
; Sentinel NetSentinel-C internal functions
;
fn_NETC_INITIALIZE = 0
fn_NETC_GETVERSION = 1
fn_NETC_SET_KEY_CFG = 3
fn_NETC_GFG_LIB_PARAMS = 7
fn_NETC_READ = 9
fn_NETC_FIND_1ST_UNIT = 0Ah
fn_NETC_FIND_NEXT_UNIT = 0Bh
fn_NETC_WRITE = 0Ch
fn_NETC_GET_ALGO_ID = 0Dh
fn_NETC_CHECK_FOR_DUP = 0Eh
fn_NETC_PASSWORD_READ = 0Fh
fn_NETC_PASSWORD_WRITE = 10h
fn_NETC_CHECK_PASSWORD = 11h
Git
ngoksun
11-06-2007, 11:54 AM
Hi, Git,
I can understand what your wanted now but I just can sure my own SuperPro emulator use follow define and it's work fine:
RNBOsproGetUnitInfo equ 2
RNBOsproSetUnitInfo equ 3
For your query, the best way was ask CenginEEr to clarify it.;)
cEnginEEr
11-14-2007, 02:47 AM
hmm, interesting discussion Git and we know where the confussion has come from, these apis are not so well documented and rarly used inside protected proggies, however you can can find the right answer by digging into the heart of SNTNLUSB.sys or sx32w.dll; my findings is that:
RNBOsproSetUnitInfo = 2
RNBOsproGetUnitInfo = 3
P.S RNBOsproGetUnitInfo is apparently called inside RNBOsproSetUnitInfo.
Regards
> RNBOsproSetUnitInfo = 2
> RNBOsproGetUnitInfo = 3
Ceng, having dug further I entirely agree. I now have it that way in my emulator and working OK. Well... I have GetUnitInfo working well, I have no idea what SetUnitInfo is supposed to do!.
Git
vBulletin® v3.6.4, Copyright ©2000-2016, Jelsoft Enterprises Ltd.