|
Patch the Flexlm error -73,125: Local checkout filter rejected request.
1.Looking in lm_attr.h we find this:
#define LM_A_CHECKOUTFILTER 45 /* Vendor-defined checkout filter */
/* PTR to func returning int */
So this means that a 45 (0x2d hex) will be pushed right before a call to lc_set_attr to define a vendor defined checkout filter. Disassembling our target we find the following:
.text:67F504C9 loc_67F504C9: ; CODE XREF: sub_67F50370+155j
.text:67F504C9 mov edx, dword_67FDF098
.text:67F504CF push offset loc_67F50D80
.text:67F504D4 push 2Dh
.text:67F504D6 push edx
.text:67F504D7 call off_67FD37A0 ; Indirect Call Near Procedure _lc_set_attr
.data:67FD37A0 off_67FD37A0 dd offset _lc_set_attr ; DATA XREF: sub_67F50370+DAr
2. Ok, this looks like the one we want��
- the job structure is probably in EDX when it gets pushed [67FDF098].
2D is indeed LM_A_CHECKOUTFILTER
67F50D80 is certainly a good place to look for the checkout filter.
For those targets that use an extremely complex routine that can't be easily figured out you can simply patch the function to always return 0.
|