Foonsearch

Hoi RGJ,

Ik ben bezig om de debugging-logging aanroepen in een kernel programma hetzelfde te maken als ik standaard gebruik. Ik doe dit op basis van procedure LogRecord in Reverse source code of diskmon in sysinternal Suite free download source code-CodeForge.com Het programma is een ‘reverse enginering’ versie van DiskMon for Windows - Sysinternals | Microsoft Learn Programma werkt goed. Het laat disk Write/read, sector, readlength zien. Ik ga deze routine gebruiken voor debugging logging. Verder uitbouwen door de winpooch driver er later in op te nemen.

Probleem met kernel programmeren is dat niet alle routines in de library zitten. Bij het laden van kernelprogramma checkt OS of hij ze kan resolven. In logRecord oplossing buffer je de meldingen. In hoofdprogramma haal je periodiek de meldingen op via een timer.

De hartelijke groet Jan Marco

Hoi RGJ,

Ben bezig om verschillende kernel programma’s te proberen om code er uit te halen die ik kan gebruiken om Winpooch weer aan de praat te krijgen. Ik zie dat de technieken als direct en via buffer, zoals in A simple demo for WDM Driver development - CodeProject wordt uitgelegd steeds weer terugkomen. Je kan ook pci kaarten identificeren met behulp van http://www.internals.com/utilities/WinIo.zip van Sysinternals.

Ik heb ook twee geluidskaarten gekocht, die de volgende (open source code) driver gebruikt Google Code Archive - Long-term storage for Google Code Project Hosting.

Ik ga het ook op windows 8 proberen, want ik zie dat niet alle kernel procedures van Winpooch in windows8-kernel zitten.

De hartelijke groet Jan Marco

P.S. De drivers hebben ook “subscriber record”. Je kan ze met database synchronisatie koppelen. Zie ook http://www.pcidatabase.com/

Hoi RGJ,

Het is mij gelukt om alle source te compileren om een sftp-verbinding op te zetten en het lijkt goed te werken.

Cliënt: Filezilla.exe → fzftp.exe (maakt verbinding met een SSH-server);

Server: Daemon.exe (luistert naar poort (22) om een SSH-sessie op te starten) → Session.exe → Shlex.exe

Fzftp.exe gebruikt deel van de code van Putty. Ik heb alle source code van Putty in één source file (104.644 source regels totaal) gedaan en de Fzftp code (initieel 47.298 source code regels) met compiler switches in de Putty code ingebouwd.

Ik probeer het te integreren met peerproject. Zie ook PeerProject download | SourceForge.net
Met peerproject (gnutella protocol) wil ik de peers gaan vinden en met sftp een veilige verbinding met de andere peer opzetten.

De hartelijke groet Jan Marco

P.S. Laatste uitdaging was om bn-win32.obj weg te werken van https://www.cs.auckland.ac.nz/~pgut001/cryptlib/ Cryptlib gebruikt (linkt) objecten van gecompileerde assembler sources, die meegeleverd worden in de distributie. Ik wilde alleen de C-code variant van BN_ASM.C gebruiken.

RGJ,

KTS KpyM Telnet/SSH Server werkt nu met ftp://ftp.franken.de/pub/crypt/cryptlib/cl333.zip De 15000 source regels van de ssh daemon heb ik onder mijn source stack gezet.

Ik probeer het wel te poorten naar ftp://ftp.franken.de/pub/crypt/cryptlib/cl342.zip Ik heb de enums in cryptlib.h gemerged van deze twee versie. Best wel een crime. Blijkbaar is het op vaste waarden geprogrammeerd. Ik heb de omgeving nu stabiel, dus kan gemakkelijk de fout zoeken in cl342.

Ik zie dat Peerproject een nieuwe versie heeft uitgebracht. Die ga ik gebruiken om de peer te vinden. Zie ook Download PeerProject_1.0.1.0_Source.zip (PeerProject)

De hartelijke groet Jan Marco

RGJ,

Ben aan uitzoeken hoe ‘version control’ er uit zit. Ik kwam naast ‘svn’ en ‘git’ ‘Fossil’ ( Fossil: Home ) tegen.

Fossil was created by D. Richard Hipp, who also created SQLite, and its first release was in 2006:

"To start with, Fossil is more than just a DVCS, it also includes bug tracking, wiki, and blog, all of which are set up for distributed operation. It is, in some ways, an integrated project management system like Trac, but it has a different set of features that are meant to satisfy Hipp’s requirements. One of the main differences from Trac, and one that will be very familiar to DVCS users, is the idea of disconnected operation. But, beyond the usual ability to edit and commit code that a DVCS provides, Fossil allows editing bug tickets or changing the wiki locally, then synchronizing those changes to other repositories at a later time. Disconnected operation is the “killer feature” that Fossil provides over Trac, at least for Hipp’s purposes.

But Fossil has some other characteristics that will be attractive to some. It is a single monolithic binary (fossil) that handles all of the source code management tasks, without using any external programs (like diff or patch). That binary also handles web requests for source code browsing, bug ticket handling, and repository synchronization. Because it is standalone, it can be easily installed in its own chroot() environment to isolate it from the rest of the system. Monolithic may give the wrong impression, however, as the binary is only around 800K in size.

Typically, each developer has their own repository on their local machine with one or more local source trees (or working directories) associated with it. Repositories can be synced with each other via HTTP. There are two different modes of operation for syncing, “manual-merge” mode (which is the way that Git and Mercurial work) or “autosync” mode (which is similar to how CVS and Subversion (SVN) work). One of the interesting aspects of Fossil is that it supports both of these modes.

In autosync mode, a commit essentially also does a push to the server where the code was cloned from or the one that was most recently used to sync. Then one uses the “update” command to pull the most recent changes into the local repository and to merge them into the local source tree. Manual-merge mode just decouples the commit from push, and update from pull so that users need to do each of those parts separately (and indeed can do those parts separately).

One thing that cannot be said about Fossil is that it lacks for documentation. There is voluminous documentation of Fossil including its design philosophy, a technical overview, a Quick Start Guide, a comparison to Git, and more, all found linked from the main Fossil project page. There is even an 87-page User Manual available in both PDF and Fossil repository format. There should be very few barriers to getting going with Fossil.".

Wat ik mooi vind is de ‘time line’ functionaliteit (zie ook Fossil: Timeline ) naast wiki- en bug tracking- en blog functionaliteit.

Napster concept (SVN):
http://www.paulund.co.uk/wp-content/uploads/2013/05/SVN-590x261.png

Gnutella concept (GIT):
http://www.paulund.co.uk/wp-content/uploads/2013/05/Git-590x304.png

Mooier plaatje:

Dus telefoonboek edit je lokaal en je pusht de records naar de andere telefoonboeken via het Fossil/Git concept.

Telefoonboek als voorbeeld. In blobveld kan ook een file staan en dan is het weer een traditioneel Version control systeem.

In http://www.revolutionanalytics.com/ heb je ook lokaal webserver voor de helpfunctie. Ik ben nog zoekende of de webserver van Fossil ook geïntegreerd kan worden met voorgenoemde helpfunctie van R.

De hartelijke groet Jan Marco

Hoi Weerman,

Hierbij de Ngram van :Git, svn en cvs

Blijkbaar stijgt gebruik van GIT sterk ten koste van Svn en CVS.

De hartelijke groet Jan Marco

Hoi Weerman,

Ik probeer een ‘moodboard’ te schetsen wat ik in mijn hoofd heb. Het is denk ik nog niet af.
Ik wil graag ProcessHacker2 als hoofdprogramma gebruiken. Screenshot zie http://www.spychecker.com/screenshots/processhacker.htm

Tabbladen gebruiken om virtual desktop (=bijvoorbeeld http://www.freerdp.com/ )-tabblad en SQLyog-applicatie-tabblad naast een Applicaties-tabblad (mogelijk Apps noemen), Processes-tabblad (zoals (ssh) Daemon.exe), Services-tabblad (zoals “KpyM Telnet SSH Server v1.19c”), Networks-tabblad (waarin ook (ssh) Daemon.exe) zit en Disks-tabblad (zit nog niet in versie 2.7) aan te maken.

Npackd (Downloads · npackd/npackd Wiki · GitHub )
https://www.youtube.com/watch?v=ZLJ8sv6siKQ&feature=player_embedded

Npackd (pronounced “unpacked”) is an application store/package manager/marketplace for applications for Windows. It helps you to find and install software, keep your system up-to-date and uninstall it if no longer necessary. The process of installing and uninstalling applications is completely automated (silent or unattended installation and un-installation). There is also a command line based version of Npackd.

Weerman, Mogelijk heb jij betere suggesties?

De volgende programma’s wil ik gebruiken:

  1. ProcessHacker2 (Process Hacker - Browse /processhacker2 at SourceForge.net );
  2. Makecert ( https://github.com/awakecoding/FreeRDP/tree/master/winpr/tools/makecert ) ;
  3. Signtool (http://sourceforge.net/projects/osslsigncode/files/osslsigncode/ ) ;
  4. OpenVPN (https://openvpn.net/ );
  5. Stun (GitHub - jselbie/stunserver: Version 1.2. This is the source code to STUNTMAN - an open source STUN server and client code by john selbie. Compliant with the latest RFCs including 5389, 5769, and 5780. Also includes backwards compatibility for RFC 3489. Compiles on Linux, MacOS, BSD, Solaris, and Win32 with Cygwin. Windows binaries avaialble from www.stunprotocol.org. http://www.coastrd.com/tls-with-schannel, http://www.stunprotocol.org/ );
  6. ClamAv ( http://www.clamav.net );
  7. Npackd ( http://code.google.com/p/windows-package-manager/ )
  8. Fossil ( Fossil: Timeline );
  9. Filesystemd
  10. SQLyog (http://sqlyog.googlecode.com/svn/trunk/ );
  11. Updater (cdfoon);
  12. DatabaseSync;
  13. Bitcoin-0.3.2.exe (GitHub - skycoin/skycoin: Skycoin Core and Wallet )
  14. SSH-server (KpyM Telnet/SSH Server, sshfs has moved , https://code.google.com/p/win-sshfs/, Redirect to sslh )
  15. Cryptlib (cryptlib Encryption Toolkit );
  16. Filezilla (https://filezilla-project.org/ );
  17. Bitcoind.exe (Google Code Archive - Long-term storage for Google Code Project Hosting., https://gitorious.org/bitcoin/libblkmaker.git );
  18. Keepass ( Downloads - KeePass );
  19. PeerBlock ( http://www.peerblock.com/ );
  20. CS Anti-Virus ( http://www.creasoftware.net/prodotto.asp|?id=16 );
  21. Winpooch ( http://sourceforge.net/projects/winpooch/ );
  22. Easyhook ( https://easyhook.codeplex.com/ );
  23. Installer ( http://nsis.sourceforge.net/Main_Page ) ;
  24. Ultimate++ ( http://www.ultimatepp.org/ );
  25. Tox ( GitHub - irungentoo/toxcore: The future of online communications. );
  26. Retroshare ( http://retroshare.sourceforge.net/ );
  27. Peerproject (PeerProject - Browse Files at SourceForge.net );
  28. Safmq ( http://safmq.sourceforge.net/ );
  29. TrueCrypt (GitHub - AuditProject/truecrypt-verified-mirror: Verified Windows, OSX, Linux TrueCrypt v. 7.1a binaries and source files );
  30. Tor (https://www.torproject.org/, http://vde.sourceforge.net/ );
  31. Bittorent (BqTracker: A tiny and fast BitTorrent tracker );
  32. Cryptsync ( cryptsync download | SourceForge.net );
  33. R (NppToR: R in Notepad++ download | SourceForge.net en Rserve - Binary R server - RForge.net, http://www.r-project.org/, PSPP - GNU Project - Free Software Foundation, http://www.revolutionanalytics.com/ en http://www.revolutionanalytics.com/ );
  34. Mupdf ( http://mupdf.com/ );
  35. Pdfinfo ( Download Xpdf and XpdfReader );
  36. FreeRDP ( http://www.freerdp.com/ );
  37. Putty (Download PuTTY: latest release (0.80) );
  38. GIT ( GitHub - libgit2/libgit2: A cross-platform, linkable library implementation of Git that you can use in your application., GitHub - msysgit/git: msysGit-based Git for Windows 1.x is now superseded by Git for Windows 2.x, TortoiseGit – Windows Shell Interface to Git );
  39. Tortoisesvn ( http://tortoisesvn.net/ );
  40. http://cscope.sourceforge.net/
  41. 8cc (GitHub - rui314/8cc: A Small C Compiler, Clang - Getting Started );
  42. Cmake (http://www.cmake.org/ ) ;
  43. Ninja (GitHub - ninja-build/ninja: a small build system with a focus on speed );
  44. Gyp ( external/gyp - Git at Google );
  45. Copyhandler (Copy Handler download | SourceForge.net );
  46. create Twitter Apps : ( http://codebrook-twitter-oauth.googlecode.com/svn/trunk/ );
  47. Google Code Archive - Long-term storage for Google Code Project Hosting.
  48. How to access iPhone files with a disk mount
  49. Google Code Archive - Long-term storage for Google Code Project Hosting.
  50. http://www.mosync.com/docs/sdk/cpp/guides/communication/using-facebook-library/index.html
  51. GitHub - facebookarchive/flint: An open-source lint program for C++ developed by, and formerly used at Facebook.
  52. GitHub - facebook/folly: An open-source C++ library developed and used at Facebook.
  53. GitHub - vmt/udis86: Disassembler Library for x86 and x86-64
  54. cURL ( curl - Source Code )
  55. Antiword: ( http://www.winfield.demon.nl/ )
  56. Libxml2 (http://xmlsoft.org/downloads.html)
  57. TomsFastMath (https://github.com/libtom/tomsfastmath )
  58. http://cran.at.r-project.org/src/contrib/Archive/rgdal/
  59. Crypto ( http://www.cryptopp.com/ )
  60. Openssl (https://www.openssl.org/ );
  61. Wget ( http://www.gnu.org/software/wget/ );
  62. Mysql ( http://dev.mysql.com/downloads/mysql/ );
  63. SQLite ( http://www.sqlite.org/download.html) ;
  64. Linphone ( https://github.com/dmonakhov/linphone.git );
  65. Wengo ( http://sourceforge.net/projects/qutecom.mirror/ );
  66. Chrome ( https://chromium.googlesource.com/chromium/src );
  67. OpenOffice ( http://www.openoffice.org/ of http://www.libreoffice.org/ );
  68. Scibus ( http://wiki.scribus.net/canvas/Scribus );
  69. Telegram Desktop messaging app ( https://github.com/telegramdesktop/tdesktop )
  70. Big 5 model: ( https://personality-project.org/r/r.regression.html https://sapa-project.org/info/faq.html );
  71. http://infrarecorder.org/, https://cdburnerxp.se/help/Intro/cdburnerxp, http://wincdemu.sysprogs.org/
  72. http://www.codeblocks.org/home
  73. https://github.com/eranif/codelite
  74. http://sourceforge.net/projects/bvrde/files/bvrde/

Ad 1) http://sourceforge.net/projects/processhacker/files/processhacker2/processhacker-2.7-src.zip/download Gebruik dus een oude versie die compileert met vs2008. Heb pcre geüpgrade in deze oude versie naar http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz N.B. Pcre 8.12 (van 2011-01-15 )wordt in het laatste versie van Processhacker2 gebruikt.

Ad 2) Het maken van certificaten is belangrijk voor het signen van kernel driver in de 64 bits omgeving.

Ad 3) het signen van de kernel driver is in de 64 bits omgeving belangrijk.

Ad 4) Tunnel naar bevriende peer is belangrijk om met anderen samen te werken. Cdfoon gebruiken om vrienden te zoeken.

Ad 5) Indien beide peers achter een firewall zitten dan via derde publieke ipadres de verbinding opzetten.

Ad 6) Wil Clamav gebruiken voor virusscannen, maar ook om files te identificeren. Denk aan attributen die bij bijvoorbeeld een PDF-document worden opgeslagen.

Ad 7) Een applicatie die store/package manager/marketplace voor Windows applicaties is.

Ad 8) Versiebeheer. Bevat Integrated Bug Tracking, Wiki, and Technotes. Bevat locale http server. ik zou dit verkeer graag over de SSH-server laten lopen.

Ad 9) Eigen programma om files te hashen in filesysteem. Heb nog een probleem met “te kleine” stack (grootte) omdat ik te veel op stack zet bij recursief aanroepen.

Ad 10) SQLyog is database browser waarin de veel functionaliteit onder rechtermuisknop wil programmeren. N.B. SQLyog weer met Proceshacker2 integreren.

Ad 11) Eigen programma om de Cdfoon White en Pink te integreren tot één database.

Ad 12) Eigen programma om een (Mysql) tabel tussen twee peers te synchroniseren door de hashcode van elke record met elkaar uit te wisselen. Dit voorkomt dat je auteursrechtelijke gegevens gaat uitwisselen die beide peers al hebben. Je kan er vanuit gaan dat 99% van twee tabellen aan elkaar gelijk zullen zijn.

Ad 13) Ik wil Berkely database vervangen door MySQL. Liefst van boost dependentie af. Grafisch interface in SQLyog bouwen.

Ad 14) In de SSH-server iets inbouwen dat je de hashes laat zien in het ls commando. Hoef je geen files over te halen als je ze al hebt. Lijkt mij ook dat je Fossil http commando’s kan programmeren in de SSH-server.

Ad 15) Cryptlib (‘cl333’) werkt en gebruik ik als basis. Ik wil de code file voor file gaan updaten met de laatste versie ‘cl343’ en daarbij het 1 file concept toepassen.

Ad 16) De ssh code gaan strippen uit FileZilla en porten naar SQLyog.

Ad 17) De Bitcoins daemon gaan integreren met eigen daemon.

Ad 18) Leuk programma om in te bouwen in SQLyog.

Ad 19) Firewall om sites te ‘blocken’. Clamav info aanvullen met site Block info en gaan verspreiden met de virus scanner informatie.

Ad 20) Kan niet veel met dit Visual Basic programma. Mogelijk nog logica uit dit programma halen.

Ad 21) Microsoft raadt https://code.msdn.microsoft.com/windowshardware/Scanner-File-System-426c8cbe aan.

Ad 22) Easyhook gebruiken om 64 bits kernel programma voor Winpooch te maken.

Ad 23) De Nullsoft installer programma gaan integreren met Fossil en Npackd.

Ad 24) U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc…), and an integrated development environment. Screenshot, Zie ook http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_0.png

Ad 25) Mogelijk gebruiken een SSH component in te brengen in het IRC deel van GUI Bitcoin-0.3.2.exe.

Ad 26) Mogelijk gebruiken een SSH component in te brengen in het IRC deel van GUI Bitcoin-0.3.2.exe

Ad 27) Peerproject is een Mainstream fork of Shareaza. Lijkt mooi, maar werkt bij mij niet snel zoals ik met bittorrent ben gewend.

Ad 28) Message Queues (MQ) is wel belangrijk component om uit te werken.

Ad 29) TrueCrypt wordt door de ontwikkelaars niet meer als veilig gezien. Code lijkt mij wel OK om te gaan gebruiken.

Ad 30) Tor wordt als een belangrijk concept gezien om anoniem op internet te kunnen opereren.

Ad 31) Belangrijk protocol om bestanden te verspreiden, echter gemakkelijk bij te houden wie wat doet, omdat acties aan een IP-adres gekoppeld kunnen worden.

Ad 32) Leuk concept om te poorten.

Ad 33) R wil ik gebruiken voor advisering aan een peer. Denk hierbij aan analyse van (Bitcoin) bank transacties. Of het maken van tests / product reviews.

Ad 34) Mupdf is een pdf browser. Mooi programma om in SQLyog (native) in te bouwen.

Ad 35) Pdfinfo geeft attributen van pdf-document. Mogelijk zit het al in Clamav, anders in Clamav gaan inbouwen.

Ad 36) FreeRDP is een implementatie van het Remote Desktop Protocol (RDP). Mogelijk zijn er betere RPD implementaties.

Ad 37) Putty werkt niet meer in mijn source stack. Zal ik nog naar moeten kijken.

Ad 38) GIT is belangrijkste software control en distributie pakket. Git adressen met meta info kan ik in tabel in SQLyog zetten. Natuurlijk ook gaan koppelen met Npackd.

Ad 39) Sommige projecten gebruiken nog SVN. Mogelijk de code van Tortoisesvn ook onder source stack te gaan zetten. N.B. Voorloper SVN ga ik denk ik niet meer gebruiken.

Ad 40) cscope is denk ik een ooi programma om de source te gaan bewerken voordat je het aan de compiler gaat aanbieden. Kan ik mogelijk het 1 file concept in gaan bouwen.

Ad 41) 8cc wilde ik gaan gebruiken om de source te gaan bewerken voordat ik het aan de compiler gaan aanbieden.

Ad 42) Cmake wordt niet meer gebruik door Chrome. GYP vs. CMake: https://chromium.googlesource.com/experimental/external/gyp/+/HEAD/docs/GypVsCMake.md

Ad 43) build programma voor Chrome.

Ad 44) make programma voor Chrome.

Ad 45) Robocopy achtige oplossing. Zou handig zijn als dat ook voor SSH zou gaan werken, dus files kunnen kopiëren van en naar een remote SSH-server.

Ad 46) Connectie source code naar Twitter.

Ad 47) Mogelijk gebruiken om TAN-code uit GSM te lezen.

Ad 48) Het aanmaken van filesytem op een Windows systeem. Code gaan integreren met SQLyog.

Ad 49) Connectie source code naar Twitter.

Ad 50 t/m 52) Connectie source code naar Facebook is ook belangrijk.

Ad 53) Assembler/deassember dat bij Easyhook wordt gebruikt.

Ad 54) cURL wordt vaak gebruikt. Lijkt op Wget.

Ad 55) Om Word documenten te viewen. Mogelijk in SQLyog gaan inbouwen.

Ad 56) Libxml2 wordt bij Clamav gebruikt.

Ad 57) TomsFastMath wordt bij Clamav gebruikt.

Ad 58) Leuk om Rdal aan R gekoppeld zien worden.

Ad 59) Crypto wordt vaak gebruikt.

Ad 60) Openssl wordt heel veel gebruikt bij de verschillende projecten. Ik ga voor om het statisch te linken (bij opstart) en dynamisch (met dll’s) te linken als er nieuwe Openssl’s zijn waarin beveiligingsproblemen worden opgelost.

Ad 61) Moet laatste versie van Wget nog onder source stack zetten. Ik wil graag de file gaan hashen bij het downloaden. Wat tijd bespaart bij erg grote bestanden.

Ad 62) Standaard Mysql server gebruiken.

Ad 63) SQLite wordt door vele programma’s gebruikt.

Ad 64) Linphone is mooie distributie om te proberen te compileren om VOIP te implemeteren.

Ad 65) Wengo (Qutecom) is wel mooi Voip programma. Ik wilde Voip gedeelte naar SQLyog poorten. In mijn beeld wordt het programma niet verder meer ontwikkeld.

Ad 66) Standaard Chrome compileren. Iets in gaan bouwen om automatisch bij de ING-bank in te kunnen loggen en transacties te kunnen doen.

Ad 67) Open Office programma kan mooi in Fossil/Npackd/SQLyog applicatie worden opgenomen.

Ad 68) Mooi DeskTop Publishing pakket geschreven in C++. Past wel bij Office programma’s.

Ad 69) Whatapp achtige applicatie.

Ad 70) Je kan persoonlijkheidstesten (Big 5 model) bouwen in het R-component.

Ad 71) Source code om CD/DVD te lezen/schrijven.

Ad 72) integrated development environment. Men kan oude project files van Visual studio inlezen. Lijkt wat verouderd.

Ad 73) integrated development environment. Projectnaam geeft light aan. Source geeft wel veel onderwerpen aan.

Ad 74) integrated development environment. Mogelijk logica uit halen.

Appendix A:

OneSwarm is a new peer-to-peer tool that provides users with explicit control over their privacy by letting them determine how data is shared. Instead of sharing data indiscriminately, data shared with OneSwarm can be made public, it can be shared with friends, shared with some friends but not others, and so forth. We call this friend-to-friend (F2F) data sharing.

Although widely used, currently popular peer-to-peer (P2P) applications offer no user privacy. By design, services like BitTorrent and Gnutella share data with anyone that asks for it, allowing a third-party to systematically monitor user behavior. As a result, using a P2P network means that your online activities become public knowledge. See http://www.oneswarm.org/about.html

Hoi Weerman,

Ben begonnen om boost te upgraden naar de (test) versie die Swish (http://www.swish-sftp.org/ ) gebruikt, namelijk boost_1_45_0.zip. Je moet ook boost_locale_4.0.0.zip in de boost source stoppen. Boost is gecompileerd 6,05 Gb groot.

Swish werkt mooi op Windows manier. Ik ga proberen Appendix A applicatie te integreren. De door Swish geleverde binary werkt nog niet bij mij. Ik heb bug aangemaakt bij hun site.

Ik ga ook proberen de sftp source van Filezilla er uit te halen. Filezilla werkt wel bij mij.

De hartelijke groet Jan Marco

Appendix A:
(126622 regels source) Wget;
(207060 regels source) TOR;
(23453 regels source) Polipo (proxy tbv Wget en Tor);
(32952 regels source) Libssh2 (ibv sftp protocol inbouwen in Wget);

Alvast veel succes gewenst de komende weken! Wel zorgen dat je voldoende drinkt als het zo warm is en om de zoveel uur een extra rustpauze inlassen.

Weerman, Goede tips.

Ik kijk ook naar mijn stappenteller op mijn smartphone. Het is verleidelijk nu om niet meer te gaan bewegen en achter mijn pc te blijven ‘hangen’.

Ik heb TOR native gepoort op Visual Studio en het lijkt te werken als ik de logmessages mag geloven. Zie ook Appendix A.

Ben nu bezig om http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz native op windows aan de praat te krijgen. Oudere versies van Wget waren m.i. beter aangepast aan Visual Studio.

Ik denk dat Wget met Tor minder complex is dat Tor-Browser met Tor. Tor-Browser plugins zijn gevaarlijk want die kunnen je identiteit publiceren. Issue die ik bij Wget zie is dat je Tor DNS moet gebruiken als je recursief site gaat kopiëren. DNS is namelijk gehackt door NSA.

Vanmorgen een post over compilerfoutmeldingen bij Keepass aangemaakt (https://sourceforge.net/p/keepass/discussion/329221/ ). Lijkt mij handig om Keepass te gebruiken als basis voor database synchronisatie.

De hartelijke groet Jan Marco

Appendix A: Tor logmessages:
Aug 05 11:28:04.211 [notice] Tor v0.2.7.1-alpha-dev running on Windows 7 with Libevent 2.1.5-beta, OpenSSL 1.0.1l and Zlib 1.2.8.
Aug 05 11:28:04.211 [notice] Tor can’t help you if you use it wrong! Learn how to be safe at Tor Project | Download
Aug 05 11:28:04.211 [notice] This version is not a stable Tor release. Expect more bugs than usual.
Aug 05 11:28:04.242 [notice] Configuration file “C:\Users\medion\AppData\Roaming\tor\torrc” not present, using reasonable defaults.
Aug 05 11:28:04.264 [notice] Opening Socks listener on 127.0.0.1:9050
Aug 05 11:28:04.000 [notice] Bootstrapped 0%: Starting
Aug 05 11:28:06.000 [notice] Bootstrapped 5%: Connecting to directory server
Aug 05 11:28:06.000 [notice] Bootstrapped 10%: Finishing handshake with directory server
Aug 05 11:28:06.000 [notice] Bootstrapped 15%: Establishing an encrypted directory connection
Aug 05 11:28:06.000 [notice] Bootstrapped 20%: Asking for networkstatus consensus
Aug 05 11:28:06.000 [notice] Bootstrapped 25%: Loading networkstatus consensus
Aug 05 11:28:09.000 [notice] Bootstrapped 45%: Asking for relay descriptors
Aug 05 11:28:09.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 1851/6302, and can only build 2% of likely paths. (We have 29% of guards bw, 29% of midpoint bw, and 29% of exit bw = 2% of path bw.)
Aug 05 11:28:10.000 [notice] Bootstrapped 51%: Loading relay descriptors
Aug 05 11:28:12.000 [notice] Bootstrapped 57%: Loading relay descriptors
Aug 05 11:28:13.000 [notice] Bootstrapped 66%: Loading relay descriptors
Aug 05 11:28:14.000 [notice] Bootstrapped 73%: Loading relay descriptors
Aug 05 11:28:15.000 [notice] Bootstrapped 78%: Loading relay descriptors
Aug 05 11:28:16.000 [notice] Bootstrapped 80%: Connecting to the Tor network
Aug 05 11:28:16.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
Aug 05 11:28:16.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Aug 05 11:28:16.000 [notice] Bootstrapped 100%: Done

Wie is dan de mol?


DNSSEC KSK Ceremony 21

Volgende week donderdag komen ze weer bij elkaar: Live Streaming (during ceremony).

Ze is IANA en de mensen die een sleutel gekregen hebben:

Domain Name Services

IANA is responsible for the operation and maintenance of a number of key aspects of the DNS, including the root zone, and the .int and .arpa domains.

The DNS Root Zone
IANA is the global coordinator of the DNS root. The root is the upper-most part of the DNS hierarchy, and involves delegating administrative responsibility of “top-level domains”, which are the last segment of a domain name, such as .com, .uk and .nz. Part of this task includes evaluating requests to change the operators of country code domains, as well as day-to-day maintenance of the details of the existing operators.

Root Key Signing Key
The Root Key Signing Key is managed by ICANN to provide for verification of the DNSSEC-signed root zone.

Hoi Weerman,

Vorige week Wget aan de praat gekregen (ftp, http en https). Afgelopen weekend Keepass werkend gekregen met hulp van het Keepass Forum. Vandaag bezig geweest om de installer van Nullsoft weer deels werkend gekregen. Morgen ga ik beginnen om Keepass in “1 file concept” om te zetten. Ik kan het hierna proberen het te integreren met mijn “1 file concept” van SQLyog (all-round database Management Tool (/‘GUI’/‘Frontend’). Ze hebben (geloof ik) in Keepass ook iets gemaakt om databases te synchroniseren.

De hartelijke groet Jan Marco

Weerman,

Heb http://keepass.info/ omgezet in de “one file concept”. Zit m.i. wel code in die overlap heeft met SQLyog. Nu bezig om de MFC van KeePass om te zetten naar (niet MFC variant) Win32GUI - Win32 GUI Generics download | SourceForge.net (37754 source regels). Gaat niet zo snel, dus Excel demo van The Ultimate Grid Home Page - CodeProject ook omgezet in “one file concept” (47019 source regels). Probeer deze Excel demo eerst om te zetten naar “win32gui”. Excel demo scrolt wel snel over scherm. Laadt wel alles in geheugen. Mogelijk dat ik code van deze Excel Demo in SQLyog poort.

Artikels Win32 vs. MFC - Part I - CodeProject en Win32 vs. MFC - Part II - CodeProject geven goed aan wat verschil is tussen MFC versus native Windows programmeren. Niet alle KeePass MFC classes (Bijvoorbeeld CProgressCtrl, CListCtr, CRichEditCtrl) zitten in “win32gui”. Mogelijk niet nodig of zijn er alternatieven. Je komt hier pas achter door het te doen.

Ben hard bezig om ontbrekende classes (CListCtrl, CTreeCtrl, CProgressCtrl, CRichEditCtrl, CDocument, CMDIFrameWnd en CMDIChildWnd) uit MFC te halen en die in “win32gui” te stoppen.

Het lukte mij niet om het aan de praat te krijgen. Het probleem is dat er procedures in de classes waren die naar veel andere classes verwijzen. Vaak geen belangrijke procedures. Ben opnieuw begonnen door alleen classes definities er in te zetten. Heb procedures uitgezet die naar andere niet belangrijke classes verwijzen om te voorkomen dat “je kerstboom” krijgt.

Ik denk dat goed plan is om grafisch routines in “win32gui” te stoppen aangevuld met eigen structuur. Zie ook Appendix A.

“class CMDIFrameWnd : public CFrameWnd” moet je denk ik zo lezen dat hij eerst binnen class CMDIFrameWnd naar procedure gaat zoeken, kan hij niet vinden dan gaat hij bij CFrameWnd of daar routine is. Kan hij procedure niet bij CFrameWnd vinden, dan gaat hij bij CWnd zoeken. De class CWnd is weer in “win32gui” geïmplementeerde.

De vraag is waarom ik zo moeilijk doe om een MFC look a like te gebruiken. Hoofdreden is dat ik problemen heb met conflicten met header files. Ik wil alle source onder dezelfde set van header files hebben, omdat ik dan alle code gemakkelijk tussen de verschillende projecten kan verschuiven. N.B. Alle programma´s hebben vaak eigen logging routines. Als je alles onder dezelfde source stack hebt kan je gemakkelijk logging afbuigen naar 1 routine. Hetzelfde geldt om alle grafisch routines in “win32gui” te zetten onder de source stack, dan kan je elk programma dezelfde routines laten aanroepen.

De hartelijke groet Jan Marco

Appendix A:
class CFrameWnd : public CWnd
{
.
.
friend class CWnd; // for access to m_bModalDisable
friend class CReBar; // for access to m_bInRecalcLayout
friend class CWinApp;
};

class CMDIFrameWnd : public CFrameWnd
{
.
.
};

class CMDIChildWnd : public CFrameWnd
{
.
.
};

class CListCtrl : public CWnd
{

.
.
};

class CTreeCtrl : public CWnd
{
.
.
};

class CProgressCtrl : public CWnd
{
.
.
};

class CRichEditCtrl : public CWnd
{
.
.
};

class CCmdTarget : public CObject
{
friend class CView;
};

class CDocument : public CCmdTarget
{

};

Appendix B:
// 1) CCriticalSection: This class is used internally to manage thread access
// to shared resources. You can also use this class to lock and
// release your own critical sections.
//
// 2) CWinException: This class is used internally by Win32++ to handle
// exceptions. You can also use it to throw and catch exceptions.
//
// 3) CWinApp: This class is used start Win32++ and run the message loop. You
// should inherit from this class to start Win32++ in your own
// application.
//
// 4) CWinThread: This class is the parent class for CWinApp. It is also the
// class used to create additional GUI and worker threads.
//
// 5) CWnd: This class is used to represent a window. It provides a means
// of creating the window, and handling its messages. Inherit
// from this class to define and control windows.

Hoi Weerman,

Er zitten mooie voorbeelden in de code WIN32GUI. Zoals het gebruik van Docking en Webbrowser aanroepen in een window.

Als proof of concept gebruik ik twee projecten. Een grid (“Excel achtige programma”) en een Password safe programma om te kijken of ik het zonder MFC (header files) kan compileren. Het scrollen van het Excel achtige programma werkt supersnel.

De orginele programma’s gebruiken MFC aanroepen

MFC<-UgExcel
MFC<-PwSafe

Bij WIN32GUI hebben ze de core zaken van MFC gezet en zit compact in elkaar. Niet alles van MFC zit er in. Ook zit er een eigen implementatie van een string class (“CString”) in. Wel vreemd vond ik dat in het orginele ATL CString implementatie geen “.c_str()” zit.

WIN32GUI<-UgExcel
WIN32GUI<-PwSafe

Eigenlijk laat ik WIN32GUI intact echter ik voeg informatie er aan toe omdat de MFC programma’s bepaalde routines bij de gedefineerde classes verwachten, die bij de implementatie van WIN32GUI zijn afgevallen.

Eigenlijk ben ik bezig om code te vertalen (compileren) in routines die WIN32GUI begrijpt. Eigenlijk zou het WIN32GUI project een pre compiler kunnen maken:

MFC programma → source pre compiler → source code die in standaard niet MFC compiler configuratie gecompileerd kan worden.

Met 1 druk op de knop zet je dan een MFC programma in een normaal programma om. Ligt m.i. ook dicht tegen static code analyse aan. Zie ook Static program analysis - Wikipedia
Wel apart vind ik dat ik normaal nooit met objecten bezig ben. Met dit gedeelte doe ik niks anders dan met objecten bezig te zijn. Ik denk dat objecten voor grafisch interface wel een toegevoegde waarde hebben.

De hartelijke groet Jan Marco

Weerman,
Ik denk dat MFC goede framework is GUI programma in op te hangen. De compacte variant van MFC “WIN32GUI” laat zien dat je bij elke window een andere thread kan koppelen. Heb wel ergens gelezen dat MFC dat niet zo goed zou kunnen . Ligt natuurlijk aan de onderliggende structuur van MFC. MFC heeft het concept om documenten (objecten) in Windows-frames te hangen. Ik denk dat je dat in database zou behoren te doen. In het verkregen framework kan je database en netwerk initialiseren. Het thread gedeelte van MFC zouden we kunnen verbeteren door code te mergen met “Process Hacker”. Process Hacker haakt diep in Windows aan.

In mijn beeld zouden we naar platform moeten toewerken. Eigen stap verder denken dan het huidige GIT concept. Ik momenteel zo het totaal plaatje zo:

Ik zou het beetje willen vergelijken met het (chef)kok concept. Je hebt ingrediënten (de source code van verschillende projecten) en recepten om de source code te compileren en te linken . Daarnaast heb je recepten/werkwijzen om het mooi op het bord te presenteren. Denk hierbij aan de NSIS files om een installer programma’s voor de eindgebruikers te maken.

Hoe zie ik het voor mij?

Je start het GUI-programma op en je kan uit een lijst programma’s of soorten programma’s kiezen. Bijvoorbeeld kies ik grid distributies en geeft ook aan of het ook productie, acceptatie of test moet zijn en/of ze moeten kunnen compileren en linken.

Het programma (onderdeel NPackd) kijkt eerst welke (windows) updates en SDK’s je nodig hebt en gaat deze automatisch op je pc uitrollen.

Hierna gaat het programma opzoek naar de source code. Denk hierbij aan tabel in MySQL met Git URL’s. Het programma gaat daarna automatisch de source source downloaden (met Wget).

In een andere tabel dan de make files die de distributies nodig hebben. Het programma (onderdeel Ultimate++) gaat automatisch de Grid-distributies compileren en linken en als je wilt ook executeren.

N.B. De huidige make files zou je kunnen vertalen als recepten voor chef-koks. Hierin staat de volgorde van ingrediënten en hoeveel heden van producten. Je moet heel veel ervaring hebben om het te kunnen laten werken. Mijn moeder en broer haken direct af als ze fout melding zien op het scherm.

In mijn beeld zou naast aspecten soort ingrediënten en hoeveelheden ook de identificatie van het ingrediënt “Hash code” moeten staan. Je bent als het ware veel meer een “chef kok” bij Mac Donalds. ik denk persoonlijk dat deze standaardisatie een boost zou kunnen geven bij de ontwikkeling. Ik ben momenteel veel met zaken bezig die ook geautomatiseerd zou kunnen worden.

De make file zou zo “onafhankelijk” moeten zijn dat je distributie zou kunnen compileren en linken door alle files te gaan downloaden van de make file genoemde hashes.

Nog iets specifieker uitgelegd: Iemand heeft de make file gemaakt die mysql compileert en linkt. Deze kan in de vorm van GIT (of Fossil) benaderbaar zijn van Internet.

Stel het programma download de Mysql distributie. Door het uitvoeren van door iemand gemaakt “MySQL make file” komt programma er achter dat in een distributie één file ontbreekt die voor compileren en linken noodzakelijk is, dan probeert het programma de file te vinden op internet (via Bittorrent of je Vrienden-netwerk) om hierna de “compilatie/link”-activiteit te vervolgen.

Hoe zie ik de relatie tussen het programma en Github?

Ik zie dat alle (belangrijke) projecten naar Github gaan. Vaak zie ik dat ze gaan migreren van bijvoorbeeld google of sourceforge naar Github.

Ik zie Github als algemeen opslag systeem van source code van projecten. N.B. Als ik alle files van Github lokaal zou willen hebben, zou ik enorm veel harddisken moeten kopen. Lijkt mij niet zo verstandig. Het verzamelen van meta data van Github-distributies is denk ik wel behapbaar.

Om het programma goed te maken zou je als moderator van een distributie ook de wijzigingen ook weer gemakkelijk moeten kunnen pushen naar je Github project(en).

De hartelijke groet Jan Marco

Beoogde functionaliteit:

  • Bijwerken van het telefoonboekje in Excelgrid achtige programma, inclusief het uitgeven en bewerken van certificaten;

  • Automatisch uitrollen van noodzakelijke software/omgevingen die nodig zijn voor het compileren, linken of runnen van een project;

  • Automatisch ophalen source coce en kunnen compileren en linken van projecten in een IDE omgeving;

  • Signen van documenten en executables met eigen (aangemaakte) certificaten;

  • Verie controle van documenten. Het saven van document in IDE-programma doet “fossil add file…” in Fossil.

  • KeyPass tabel in MySQL aanmaken;

  • Blockchain (Bitcoins) implementatie;

  • virus scannen van documenten;

  • Firewall (Peerblock);

  • Bellen vanuit het telefoonboekje met SIP;

  • Webbrowser en PDF-viewer inbouwen;

  • Sftp inbouwen soortgelijk als Swish.

  • Static code analyse tools inbouwen.

  • Makefile maken die Chrome kan compileren.

  • Chrome aanpassen, zodanig dat men ing.nl/particulier lezen en de records in MySQL kan opslaan.

Hoi Weerman,

De Excel grid variant heb ik nu onder WIN32GUI source stack staan. ‘Werkt’ wel, echter nog niks op het scherm, want ik moet nog ‘koppelen’.

Ik ben bij de KeePass source code op de helft met het integreren met WIN32GUI. Ik zet er compiler switches in die aangeeft welke code hij moet pakken voor de orginele MFC compilatieslag of voor de MFC-Look-a-like (WIN32GUI). Ik heb dus een goede omgeving opgebouwd om te testen.

KeePass source code heeft 88000 regels source en de MFC look-a-like (WIN32GUI) heeft 70000 source regels. Excel Grid variant heeft 48000 source regels. KeePass en Excel Grid variant hebben best veel regels in vergelijking tot de MFC-look-a-like. Ter vergelijking Clamav (core) heeft 287933 source regels. Clamav gebruikt ook llvm welke 505285 source regels heeft.

Eigenlijk ga ik de source code van de Excel Grid en KeePass hergebruiken in de SqlYog GUI interface.

Opvallend is dat alle MFC source code wel te vinden is. Blijkbaar vindt Microsoft het goed dat je er mee aan de haal gaat.

Een paar parameters worden maar uit een ATL dll geladen. Ben erg blij dat ik daar straks van MFC beperkingen af ben.

Wel valt mij op de MFC source code overal staat. Weinig structuur in te ontdekken.

Ik ben erg blij met het één file concept, want nu heb ik alle MFC code bij elkaar staan.

Ik ben ook met het schuiven van de classes bezig geweest. Begin nu met de CString look-a-like class. Bij een CString implementatie routine zag ik ook dat ze strings uit de applicatie laden. N.B. Wat nieuw voor mij was. Dus deze routine onder de CWinApp class geplaatst.

De hartelijke groet Jan Marco

Hoi Weerman,

Heb even naar de light-weight alternatief WTL gekeken in relatie tot Microsoft Foundation Classes (MFC). WTL is op ATL gepositioneerd. Ik heb liever variant gebaseerd op de standaard (niet ATL) libraries van Visual studio Windows.

Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more.

Opvallend is dat WTL-voorbeeld programma’s niet direct (bij mij) werken. De code zit meer in de header files.

Ik zie bijvoorbeeld dat WTL ook een DitherBlt routine heeft, deze staat niet in MFC, wel in KeePass geïmplementeerd. Beide projecten hebben de code m.i. van een ander project geleend. Ik denk dat ik nu een goede basis framework (80000 source regels) heb om de GUI in te implementeren. Ik zie voordelen in om het te mergen met Process Hacker en Ultimate++ IDE. Mooie code van andere projecten is er natuurlijk altijd bij te sprokkelen.

Ik ben net begonnen om de GUI proberen aan te zetten.

De hartelijke groet Jan Marco

Hoi Weerman,

Startup Manager is a program that provides you the possibility to manage the Windows startup procedure. It offers you the possibility to control which programs automatically start up and more.

Met Startup Manager kan je de Windows startup procedure bekijken en hopelijk veranderen. Het was gebouwd op WIN32GUI. Gisteren ben ik 12 uur bezig geweest om het opnieuw te integreren op mijn versie van WIN32GUI++. Zie voor screenshot:

Blijkbaar worden verschillende programma’s gestart waar ik geen weet van heb.

Het programma bevat Tree (links) en een grid (rechts). Zie ook:

De Tree zit in KeePass en de grid zit in ‘Excel_demo’. Excel_demo scrolt erg snel over het scherm. Ik denk aan om “view classes” op de WIN32GUI++ classes te gaan maken. Waaronder je weer een koppeling naar de database maakt.

De hartelijke groet Jan Marco

Hoi Weerman,

Het is net bergbeklimmen. Het lukt mij niet om de Startup-Manager gepoort op WINGUI32 werkend te krijgen. Ik heb vanmorgen de 55 classes van de Startup-Manager een andere naam gegeven, dus naast de WINGUI32 classes gezet. Nu werkt het wel. Ik denk dat het kwam omdat ik wel de interfaces gelijk getrokken had, maar niet de record “struct TLSData” aan elkaar gelijk had gemaakt. Fout zoeken kost veel meer tijd.

Ik kan nu een voor een de 55 classes weer op de WINGUI32 classes gaan zetten. Big Bang migratie werkte dus niet bij mij.

De hartelijke groet Jan Marco

Hoi Weerman,

Ik denk aan twee programma’s

  1. Personality.exe: Hiermee identificeer je een peer (PC/PPC-client). Denk hierbij ook aan het updaten van je eigen subscriber record, waarbij je een eigen certificaat aanmaakt. Ook rol je de software initieel uit. Kies je (‘Cloud’ abonnements) serviceniveau’s. Lage updategraad, om virusscanbedrijven de mogelijkheid te geven om je in de sercure list op te laten nemen. Denk aan jaarlijks aanpassing. Certificaat van Personality.exe executabel zou denk ik het beste van een gerenommeerde certificaat bedrijf betrokken kunnen worden.

  2. Voipe.exe: Hiermee werk je feitelijk. Links boven kan je de source code aanpassen en synchroniseren met alle andere of bevriende peers. Rechtsboven kan je software bekijken die op je peer draait. De peer monitoren. Onderkant kan je database applicaties draaien. Denk bijvoorbeeld aan KeePass applicatie. Hier zou je m.i. ook GiT(Hub) source distributies kunnen selecteren op een afzonder project niveau en/of op generieke project soort niveau. Maar ook subscriber records aanpassen en synchroniseren met alle andere peers of alleen je vrienden peers. In de onderkant zou je ook de tunnels naar je vrienden en alle sftp verbinden kunnen instellen. De indeling kan je m.i. dynamisch definiëren. Docking en het gebruik maken van een (aparte) thread per window is standaard in WIN32GUI geïmplementeerd.

Ad1)

Ad2)

Weerman, Misschien heb jij meer ervaring met grafisch GUI design?

De hartelijke groet Jan Marco