Jump to content

Fr0sT.Brutal

Members
  • Content Count

    2268
  • Joined

  • Last visited

  • Days Won

    46

Everything posted by Fr0sT.Brutal

  1. Fr0sT.Brutal

    Package SynEdit library as Dll

    It's possible to use a VCL component from DLL, with some drawbacks & limitations. Search for "Plugins in Delphi" and "Delphi Form from DLL"
  2. Fr0sT.Brutal

    Are the jcl and jvcl libraries still alive?

    I'd still advise you to learn the Git basics. Want it or not, it became industry standard and you can't avoid it unless only coding in COBOL ๐Ÿ™‚ Most opensource Delphi projects switched from SVN to Git.
  3. Fr0sT.Brutal

    IPC named pipes

    Yes (Haven't tested them myself) https://github.com/kami-soft/NamedPipeExchange https://github.com/CPsoftBE/BackupOfCromis/blob/master/Cromis.Comm.IPC.pas
  4. HKCU => "Install for me only" HKLM => "Install for everyone" IDK why the settings have gone to \SYSTEM\CurrentControlSet though - I'd expect them in \Software. Probably W10 have changed things a bit
  5. Probably full traffic dump made by WireShark? Hmm, I see this assertion periodically but still can't get why. Logger is very nice and is used by ICS for event reporting of various levels. I've loaded it additionally with all channel-related stuff in my project and it does well.
  6. Okay, so we're sure this is not an issue on the openSSL=>network=>server part of chain. Remy your turn ๐Ÿ™‚
  7. Try to connect with openssl only like advised here https://github.com/openssl/openssl/issues/17386 Probably corp FW intercepts your TLS?
  8. Fr0sT.Brutal

    Free Pascal Web Assembly Objects

    I guess you won't get too much help here as it's mostly Delphi forum and your question is too specific.
  9. Fr0sT.Brutal

    Best way to replace D11 distributed Indy with latest Git Indy?

    IMHO separate VMs are still the most convenient solution in such case.
  10. Fr0sT.Brutal

    Best way to replace D11 distributed Indy with latest Git Indy?

    Isn't built-in Indy an optional feature that could be unchecked during install?
  11. As my friend used to say, 7zip(rar(zip(something))) ๐Ÿ™‚ alas, things don't work in such a way, otherwise data of any size could be compressed into a single byte after N iterations ๐Ÿ˜„
  12. Fr0sT.Brutal

    What happened to Felix Colibri

    Well, after 30+ years of Delphi you should be familiar with the situation when nothing works out of the box ๐Ÿ™‚ Delphi is for really brutal guys unlike that filthy Python ๐Ÿ™‚
  13. Fr0sT.Brutal

    Dynamic class member names

    Okay {$RTTI EXPLICIT FIELDS([vcPublic]) PROPERTIES([])} TTest = class public obfuscated: byte; public property secret: byte read obfuscated; end; procedure TForm1.FormCreate(Sender: TObject); var ob: TTest; begin ob:= TTest.Create; ob.secret := 2; ShowMessage(TJSON.ObjectToJsonString(ob)); // {"obfuscated":2} end; I checked binary output and there's only "obfuscated" field visible. One more option is using structure-identical classes and typecasting but that requires more efforts. The solution above seems more simple
  14. Fr0sT.Brutal

    What happened to Felix Colibri

    Well, you can try to investigate why they don't work. For example, DB could change its API
  15. Fr0sT.Brutal

    Format source with tabs

    Tabs for indenting are a pain so not surprise
  16. Fr0sT.Brutal

    What happened to Felix Colibri

    Do you really need to use dead project? There are plenty of REST implementations, OAuth2 is available in ICS
  17. Chunked encoding also
  18. "Empty password" not exactly equals to "No password" (just like NULL in database is not '') though the settings in the config/UI could seem identical. But it's up to server to decide what "empty" means.
  19. I'd first try to cope with it with little efforts and check compression. Depending on values distribution, that could give you the largest gain - or almost nothing if entropy is too high. Next, you can prepare the order of numbers. F.ex., cols-then-rows could be more compressable than rows-then-cols. After these simple and quick checks, you can dive into rabbit hole of low-level packing. Btw, there's nothing frightening in packing the data into non-modulo-8 bit chunks - this format is widely used in radio transmission. It's just the question of adding a reader and writer and Delphi already has TBits in RTL (haven't used it though). If you decide to go this way, I can borrow TBitReader class that I use in my projects
  20. Fr0sT.Brutal

    Dynamic class member names

    I still consider it the most easy and at the same time working solution. You still use human readable member names but with small non-disrupting addition. Before building a release, run regexp replace for all source files and that's all. No he doesn't. He wants both readable names and auto-JSON-ing which requires RTTI which leaves readable traces in binary. Hmm. How about using {$RTTI EXPLICIT PROPERTIES vcPublished} and then TObfuscatedClass = class private FSecretField: string; public // for use from code property SecretField: string read FSecretField write FSecretField; published // for JSON-ing property bwoirhoeri: string read FSecretField write FSecretField; end;
  21. Fr0sT.Brutal

    Dynamic class member names

    Do you really need automatic JSON (de)serialization for the objects? Maybe disabling all RTTI for the critical structures and implementing manual read/write routines would be the simplest option. One more option is to name members in a special style like "__Ident__" that is guaranteed to be unique project-wide and then perform simple regexp replace on all sources before build. 3rd option that comes to mind (and probably the most correct one) is to try refactoring from command line but I'm not sure if this tool exposes command line interface or only runs from IDE
  22. If a system can run Chrome, it can run almost everything.
  23. Depending on a specific site, the actions could involve Javascript which you couldn't imitate with Delphi. Probably you should examine the option of controlled browser component; then you won't need network component at all
  24. Fr0sT.Brutal

    MMX and (Parnassus) BookMarks

    Don't forget " Embarcadero Technologies does not currently have any additional information. "
  25. Fr0sT.Brutal

    MessageBox is hidden by a modal form

    BTW, don't forget that any form's window could be recreated at run-time thus changing its handle
ร—