>> That's possible to do with qmake already, but you'll have to build
resource files manually via custom targets

Great! Where can I read about this? Is there any examples?

>> You can wrap this whole expression into function and replace that
>> function with empty one:

>> function printPasswordToDebug() {
>>  console.debug('password: ', 
>> someFunctionWhichReturnsPasswordFromProtectedStorage());
>> }

>> and replace printPasswordToDebug

Yeah, it could work in theory, but in practice there already a lot of
places which would require such a modification. This solution just
doesn't scale. Moreover, resulting binary will contain
string 'console.debug('password: ',
someFunctionWhichReturnsPasswordFromProtectedStorage());' (well, maybe
not if qml compiler was enabled).

ср, 24 апр. 2019 г. в 22:19, Alexander Ivash <elder...@gmail.com>:
>
> ср, 24 апр. 2019 г. в 22:08, Konstantin Tokarev <annu...@yandex.ru>:
> >
> >
> >
> > 24.04.2019, 22:01, "Alexander Ivash" <elder...@gmail.com>:
> > > What I really need is some 'plugin' to qmake which would allow to
> > > modify qml files on the fly before placing it into resources (but not
> > > touching them on filesystem!). In ideal world, yeah.
> >
> > That's possible to do with qmake already, but you'll have to build
> > resource files manually via custom targets
> >
> > >
> > > ср, 24 апр. 2019 г. в 21:51, Alexander Ivash <elder...@gmail.com>:
> > >>  2Jerome:
> > >>
> > >>  The issue is that even if that function will be doing nothing, logging
> > >>  data (which might be sensitive) can be captured via hooks / dump
> > >>  analysis etc. I really need to pre-processes to eliminate not only
> > >>  function call but also function parameters completely. Think about
> > >>  this scenario:
> > >>
> > >>  console.debug('password: ',
> > >>  someFunctionWhichReturnsPasswordFromProtectedStorage());
> >
> > You can wrap this whole expression into function and replace that
> > function with empty one:
> >
> > function printPasswordToDebug() {
> >   console.debug('password: ', 
> > someFunctionWhichReturnsPasswordFromProtectedStorage());
> > }
> >
> > and replace printPasswordToDebug
> >
> > >>
> > >>  In this case even if console.debug will be replaced with empty
> > >>  function, 'someFunctionWhichReturnsPasswordFromProtectedStorage()'
> > >>  will be executed anyway and as the result password will appear
> > >>  somewhere in JS heap so after capturing dump it will be simpler to
> > >>  find it.
> > >>
> > >>  2Tomasz:
> > >>
> > >>  In fact I would love to use logging category, but only for debug
> > >>  builds. But I have some requirements to minimize risk of sensitive
> > >>  data leak via logging. And to make a life of reverse engineers a bit
> > >>  more complicated if you like. So ideally no logging-related functions
> > >>  (and their parameters too!) should be visible in release build.
> > >>
> > >>  ср, 24 апр. 2019 г. в 21:27, Jérôme Godbout <godbo...@amotus.ca>:
> > >>  >
> > >>  > Maybe you can overload the functor directly into the code and import 
> > >> the file only if in debug mode (optional module):
> > >>  > http://udidu.blogspot.com/2012/12/override-console-functions.html
> > >>  >
> > >>  > That could also be helpful to split the log into multiple receiver.
> > >>  >
> > >>  > Not sure if this would work, but maybe you can override the 
> > >> console.log command into the QQmlScriptEngine and define a new 
> > >> javascript function that does nothing. Maybe into the your main.cpp 
> > >> where you create the QQmlEngine you can call the rootContext() 
> > >> QQmlContext object, maybe you can extract the console object with 
> > >> QVariant contextProperty() and set the debug() property of it with a 
> > >> QQmlExpression, I cannot glue all this together, but maybe something 
> > >> into that direction could be done before you start loading the main qml 
> > >> file. This is far fetched by might work but it seem overcomplicated to 
> > >> me.
> > >>  >
> > >>  > -----Original Message-----
> > >>  > From: Interest <interest-boun...@qt-project.org> On Behalf Of 
> > >> Alexander Ivash
> > >>  > Sent: April 24, 2019 12:56 PM
> > >>  > To: interestqt-project.org <interest@qt-project.org>
> > >>  > Subject: [Interest] QML preprocessing
> > >>  >
> > >>  > I understand that this topic was raised a lot of times and that this 
> > >> is not QML-way. But, what options do I have in case of requirements to 
> > >> eliminate all the logging for release builds?
> > >>  >
> > >>  > Is there any hidden magic in qmake, like 'QMAKE_SUBSTITUTES' but more 
> > >> flexible to substitute all the 'console.debug....' with '// 
> > >> console.debug' right before adding qml into resources?
> > >>  >
> > >>  > p.s. Yea, I'm aware of selectors, but would like to avoid having both 
> > >> component-with-logging.qml and component-with-no-logging.qml
> > >>  >
> > >>  > Regards, Alexander
> > >>  > _______________________________________________
> > >>  > Interest mailing list
> > >>  > Interest@qt-project.org
> > >>  > https://lists.qt-project.org/listinfo/interest
> > >
> > > _______________________________________________
> > > Interest mailing list
> > > Interest@qt-project.org
> > > https://lists.qt-project.org/listinfo/interest
> >
> > --
> > Regards,
> > Konstantin
> >
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to