Decode SQ_FETCHBLOB in Informix-Protocol
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I'm writing a parser for the SQLi-protocol ("turbo") used by Informix. I have most opcodes covered by now, yet SQ_FETCHBLOB
I don't have a clue yet. Reverse engineering the driver is difficult since it copies values from its internal state machine, which itself is hard to track. All I know is that SQ_FETCHBLOB
is followed by 56 bytes of data, some of which seem to be the BLOB's total size and fetch-offset.
Does anyone have some information on how to decode SQ_FETCHBLOB
as used by Informix SQLi ?
informix
add a comment |
I'm writing a parser for the SQLi-protocol ("turbo") used by Informix. I have most opcodes covered by now, yet SQ_FETCHBLOB
I don't have a clue yet. Reverse engineering the driver is difficult since it copies values from its internal state machine, which itself is hard to track. All I know is that SQ_FETCHBLOB
is followed by 56 bytes of data, some of which seem to be the BLOB's total size and fetch-offset.
Does anyone have some information on how to decode SQ_FETCHBLOB
as used by Informix SQLi ?
informix
add a comment |
I'm writing a parser for the SQLi-protocol ("turbo") used by Informix. I have most opcodes covered by now, yet SQ_FETCHBLOB
I don't have a clue yet. Reverse engineering the driver is difficult since it copies values from its internal state machine, which itself is hard to track. All I know is that SQ_FETCHBLOB
is followed by 56 bytes of data, some of which seem to be the BLOB's total size and fetch-offset.
Does anyone have some information on how to decode SQ_FETCHBLOB
as used by Informix SQLi ?
informix
I'm writing a parser for the SQLi-protocol ("turbo") used by Informix. I have most opcodes covered by now, yet SQ_FETCHBLOB
I don't have a clue yet. Reverse engineering the driver is difficult since it copies values from its internal state machine, which itself is hard to track. All I know is that SQ_FETCHBLOB
is followed by 56 bytes of data, some of which seem to be the BLOB's total size and fetch-offset.
Does anyone have some information on how to decode SQ_FETCHBLOB
as used by Informix SQLi ?
informix
informix
asked Nov 22 '18 at 12:16
user2722968user2722968
2,75411637
2,75411637
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I can't comment on the specifics of the SQ_FETCHBLOB
SQLI packet type but you might want to look at the file $INFORMIXDIR/incl/esql/blob.h
which is shipped with Client SDK. This describes the tblob_t
data structure which is 56 bytes.
Thanks. Could you drop the struct definition here? The CSDK I have does not includeincl/esql
or any other place whereblob.h
is.
– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53430840%2fdecode-sq-fetchblob-in-informix-protocol%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I can't comment on the specifics of the SQ_FETCHBLOB
SQLI packet type but you might want to look at the file $INFORMIXDIR/incl/esql/blob.h
which is shipped with Client SDK. This describes the tblob_t
data structure which is 56 bytes.
Thanks. Could you drop the struct definition here? The CSDK I have does not includeincl/esql
or any other place whereblob.h
is.
– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
add a comment |
I can't comment on the specifics of the SQ_FETCHBLOB
SQLI packet type but you might want to look at the file $INFORMIXDIR/incl/esql/blob.h
which is shipped with Client SDK. This describes the tblob_t
data structure which is 56 bytes.
Thanks. Could you drop the struct definition here? The CSDK I have does not includeincl/esql
or any other place whereblob.h
is.
– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
add a comment |
I can't comment on the specifics of the SQ_FETCHBLOB
SQLI packet type but you might want to look at the file $INFORMIXDIR/incl/esql/blob.h
which is shipped with Client SDK. This describes the tblob_t
data structure which is 56 bytes.
I can't comment on the specifics of the SQ_FETCHBLOB
SQLI packet type but you might want to look at the file $INFORMIXDIR/incl/esql/blob.h
which is shipped with Client SDK. This describes the tblob_t
data structure which is 56 bytes.
edited Nov 23 '18 at 15:06
user2722968
2,75411637
2,75411637
answered Nov 23 '18 at 12:08
Simon RiddleSimon Riddle
38112
38112
Thanks. Could you drop the struct definition here? The CSDK I have does not includeincl/esql
or any other place whereblob.h
is.
– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
add a comment |
Thanks. Could you drop the struct definition here? The CSDK I have does not includeincl/esql
or any other place whereblob.h
is.
– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
Thanks. Could you drop the struct definition here? The CSDK I have does not include
incl/esql
or any other place where blob.h
is.– user2722968
Nov 25 '18 at 15:47
Thanks. Could you drop the struct definition here? The CSDK I have does not include
incl/esql
or any other place where blob.h
is.– user2722968
Nov 25 '18 at 15:47
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I would probably be breaking all sorts of rules if I posted that structure directly here. The incl/esql directory should be included with all versions of CSDK so if it's not present in your install it may be that you have Informix Connect installed instead.
– Simon Riddle
Nov 26 '18 at 9:35
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
I also found the tblob_t structure is listed in some older versions of the Informix Administrator's Guide. For example page 43-60 of the v7 guide (found at ftp.uni-potsdam.de/pub/WWW/netscape/livewire/InformixDoc/…) shows it - note the figure is missing the "long tb_start" element positioned after tb_tblspace (this represents the starting byte).
– Simon Riddle
Nov 26 '18 at 9:37
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
Thanks, I'm not sure if those fields are in the same order as they are on the wire, yet this is a start.
– user2722968
Nov 26 '18 at 12:38
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53430840%2fdecode-sq-fetchblob-in-informix-protocol%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown