-
Content Count
1691 -
Joined
-
Last visited
-
Days Won
32
Everything posted by Angus Robertson
-
Fixes to allow HTTP & socks proxy servers to have non-IP address
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Thanks, will apply shortly. Don't often look at socks or tunnels. Angus -
Read out signed executable certificate possible?
Angus Robertson replied to KodeZwerg's topic in Windows API
I have a component that checks signing certificates: https://www.magsys.co.uk/delphi/magtrustchk.asp Angus -
ICS 8.65 design installation failed
Angus Robertson replied to Development's topic in ICS - Internet Component Suite
Also ensure the ICS source directory is in the path, and the path is set for the correct language and target. Angus -
ICS 8.65 design installation failed
Angus Robertson replied to Development's topic in ICS - Internet Component Suite
Don't read French, so no idea what error. But quite common to get a false error saying can not install, but they are installed okay next time you start RAD Studio. Angus -
Max string literal length = 255
Angus Robertson replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
Agreed. annoying when creating SSL certificates as literals to embed in an application. Angus -
Cannot Transfer Higher values like Chr(65470)
Angus Robertson replied to AllanF's topic in ICS - Internet Component Suite
Sockets stream single bytes, so each end needs to agree on whether single or double byte characters are being sent, and handle them the same way. It is relatively unusual to send two byte characters over the internet, due to most western languages having a lot of one byte Unicode characters. So generally conversion to UTF-8 is more efficient. To avoid Delphi doing it's own code page conversions it is better to use TBytes to send and receive data, then functions IcsMoveStrinngToTbytes and IcsMoveTBytesToString with your desired CodePage. Angus -
Is TSslContext yet required with TSslWSocket (Client side)
Angus Robertson replied to AllanF's topic in ICS - Internet Component Suite
No, TSslWSocket still needs an TSslContext, although you don't usually need to change any defaults unless you want to restrict protocols. However, you can use the high level component TIcsIpStrmLog in client mode to send and receive simple data, and that does not need an TSslContext. It's sample OverbyteIcsIpStmLogTst.dpr can be set to client or server mode, or local when it does both and send lines of data to itself. In server mode it is configured using IcsHosts so it might be a quick swap. Angus -
The TIcsWhoisCli component already parses the response in the AutoQueryResponse function, looking for a secondary Whois server using several different phrases. Extracting more information is trivial, although tedious having to research lots of responses to know the different whois response formats. Angus
-
New OpenSSL 1.1.1j available, 1.0.2 no longer supported
Angus Robertson posted a topic in ICS - Internet Component Suite
Two new zips for Win32 and Win64 versions of OpenSSL 1.1.1j can now be downloadable from the Wiki at: http://wiki.overbyte.eu/wiki/index.php/ICS_Download or https://www.magsys.co.uk/delphi/magics.asp . The latest 1.1.1 DLLs are also included in the ICS distribution SVN and overnight zip. Beware SVN and the overnight zip for forthcoming V8.66 include is a major clean-up of OpenSSL functions, and may require end user application changes if low level OpenSSL functions have been used, hopefully very rarely. All OpenSSL functions have been renamed to their original names removing ICS f_ prefix so they now have the original OpenSSL names for commonality with other Delphi applications. OpenSSL 1.0.2 and 1.1.0 ceased security fix support over 12 months ago, so ICS now only supports 1.1.1, with 3.0 support due in the next few months. This removes a lot of legacy code and functions, and several old ICS functions needed for backward compatibility. Two components only used for 1.0.2 have been removed, TSslStaticLock and TSslDynamicLock which may give an error loading forms, until they are removed. SslContext SslOptions is now ignored, use SslOptions2 instead which has more modern options. Can not remove SslOptions because it's saved on too many DFMs. Most modern applications should not be using SslConext, but IcsHosts for servers or high level client components like TSslHttpRest. If your application needs to use 1.0.2, you must keep using V8.65 or earlier. Angus -
15:33:40 Request from 209.141.46.116 (), Host=TELECOM: http://2573636313/ GET 15:33:40 !!! Application Server Exception Big - Integer overflow 15:33:43 Restarting Server After Errors Guess we need to validate silly URLs more carefully. Angus
-
How to crash the ICS web server
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Found the integer overflow in WSocketIsDottedIP, not sure why it was called, but fixed anyway. Had to write a little application to create fake web requests, should really improve it for server testing. Angus -
How to crash the ICS web server
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Yes, that logging line is built from the host header, RequestHost and Path properties. I'll need to test this under the debuggger to see if the overflow was in my logging code or the server component. Angus -
The Whois result is always free text, and varies between registrars. But usually you'll see something like: One example: Updated Date: 2020-10-30T06:00:11Z Creation Date: 2020-10-30T06:00:08Z Registry Expiry Date: 2021-10-30T06:00:08Z Registrar: NameCheap, Inc. My own domain (very old): Relevant dates: Registered on: before Aug-1996 Expiry date: 02-Sep-2022 Last updated: 03-Aug-2020 so you just search for that expiry line and get the date, allowing for various formats. You need to check several domains for different formats. If you manage to collerct all this information and parse it sensibly, we could add it to the component for others. I'd particular like domain registered date, because most spam comes from newly registered domains. Angus
-
How to crash the ICS web server
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
So I guess a hacker testing IPv4 addresses sequentially, and too lazy to convert his numbers to a dotted IP address, except the server is http://3650250390/ which does work from Firefox, but may have been converted by the browser. One of my hacking tests is for numeric IPs since no real visitor would use them, they go on an immediate 24 hour block list. Angus -
Delphi Native Code: Fast or Reliable?
Angus Robertson replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
Absolutely, I keep the four targets files that Microsoft deletes when it you re-install or patch framework v2, they are in a Microsoft folder atter all, so maybe it was Borland's error. Angus -
Delphi Native Code: Fast or Reliable?
Angus Robertson replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
There are subtle changes with new versions of windows. Getting the actual windows version is much harder than it used to be since Windows now fakes old versions to keep old applications happy. Auto running from the registry is harder if your application has admin rights, since that is something hackers try to do to gain admin rights. There must be a list of these things somewhere, these are just two in the old application I'm maintaining today. But generally, Delphi applications compiled 20 years ago still run today, as do new applications compiled with 20 year old compilers (mostly). Never used .net, but I know security holes are fixed every month, and Microsoft keeps breaking Delphi 2007 by regularly deleting the Borland.*.Targets files from the Framework directory. I would never sell an application that Microsoft can so easily break. Angus -
IcsCommonCB103Design installation failure (WINAPI.WINDOWS.OBJ) C++
Angus Robertson replied to GE1956's topic in ICS - Internet Component Suite
The distribution does not include any .lib files, they are presumably built when you build the C++ packages. Angus -
Install recent Delphi versions on Windows XP
Angus Robertson replied to dummzeuch's topic in Delphi IDE and APIs
Disabling Windows Update is an art, Microsoft does keep trying to restart it afer any updates are installed manually, and there are two services to stop. I've not recently tried to stop Update, but Firewall has not run here for three years. Angus -
Install recent Delphi versions on Windows XP
Angus Robertson replied to dummzeuch's topic in Delphi IDE and APIs
Surely disabling the Windows Update and Windows Update Medic Service services through the registry should be sufficient to stop them working. That's the only way to stop Windows 10 Derfender Firewall interferrng with internet connections, even if turned off. Angus -
How to check internet connection with TWSocket ?
Angus Robertson replied to steve faleiro's topic in ICS - Internet Component Suite
I was updating the check alive capability of one of my applications to add IPv6 support this week, so created a new ICS component TIcsInetAlive to check for IPv4 and/or IPv6 internet connectivity, using Ping and/or HTTP, defaulting to www.msftconnecttest. com run by Microsoft for Windows 10 alive checking, online and offline check intervals may be set, event when online changes. In SVN now. There is a demo in OverbyteIcsHttpRestTst.dpr. It is also a sample for using TSslHttpRest, needing only a few lines of code for HTTP requests. Angus -
slowdown tcp transfer under Windows 10 64bits
Angus Robertson replied to Alain1533's topic in ICS - Internet Component Suite
I've just written a new TIcsInetAlive component, will be in SVN shortly, it measures the round time for ping and HTTP requests, and these are my results from Windows 10 over FTTC to a London data centre where Microsofts hosts this domain. 08:31:24 Check Alive Ping to www.msftconnecttest.com (13.107.4.52) took 5 msecs 08:31:24 Check Alive to http://www.msftconnecttest.com/connecttest.txt (13.107.4.52) took 16 msecs 08:31:49 Check Alive Ping to ipv6.msftconnecttest.com ([2a01:111:2003::52]) took 5 msecs 08:31:49 Check Alive to http://ipv6.msftconnecttest.com/connecttest.txt ([2a01:111:2003::52]) took 15 msecs Note HTTP is the complete lookup DNS, connect, get a page, close cycle, not just send and receive a packet. I'm only timing with ticks, not performance counter, but I believe ticks are reasonably accurate in modern versions of Windows. Angus -
slowdown tcp transfer under Windows 10 64bits
Angus Robertson replied to Alain1533's topic in ICS - Internet Component Suite
I don't believe ICS has any OS checks between Windows 7 and 10, only back to XP, nor does it check for 32-bit or 64-bit versions of Windows, and no conditional Win64 code for TWSocket. But the Windows winsock code is 12 years younger so maybe different. Are you sending packets using simple TWSocet functions, using IP addresses not domain names? Angus -
IcsCommonCB103Design installation failure (WINAPI.WINDOWS.OBJ) C++
Angus Robertson replied to GE1956's topic in ICS - Internet Component Suite
The Dxx projects are Delphi, CBxx are C++ Builder. Looks like I put an extra D in the name, should have been OverbyteIcsCB101Run.cbproj, but evewn that is missing, so try Packages\OverbyteIcsCBXe3Run.cbproj and Packages\OverbyteIcsCBXe3Design.cbproj. We are dependent upon C++ users to supply packages for new compilers, and it does not happen often enough. Angus -
Indeed, lets hope Embarcadero uses it to bring some long neglected RTL files up to date. Also OpenSSL, but dare not ask them anything new, so far behind on 3.0. Angus
-
Best components for creating windows service apps
Angus Robertson replied to microtronx's topic in VCL
Thanks, I'll update the DllSuffixes for the next release of Delphi. I added support for DDService in Delphi 10.4 last summer. Angus