La Billetterie

Un peu de tout saupoudré délicatement

Affichage des articles publiés par site admin

http://www.sharepointblogs.com/michael/archive/2007/09/27/sharepoint-wiki-create-pages-based-on-a-template.aspx
workaround: link to bookmark anchor on same page in sharepoint 2007 wiki
http://arjunthomas.com/2007/02/22/wikis-in-sharepoint-2007-part-2/
There’s also the community kit for sharepoint with an enhanced wiki: http://www.codeplex.com/CKS.
CKS: Enhanced Wiki Edition
http://arjunthomas.com/2007/11/07/new-wiki-for-moss-2007-the-atlassian-influence/

SVG-edit is a lightweight, web-based, Javascript-driven SVG editor that works in any modern browser:
http://code.google.com/p/svg-edit/

Sortie de la version 2.4 :
http://linuxfr.org/2010/01/12/26343.html

Demo en ligne : http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html

Une appli de GPS gratuite amAzeGPS :
http://www.amazegps.com/index.php?page=register

Un nouveau browser basé sur WebKit Dorothy Browser
Il y a aussi skyfire : http://get.skyfire.com/ compressé au niveau du serveur.
Iris browser est abandonné en version WM suite au rachat de la société par RIM.

Un ensemble de liens utiles Androïde / Windows Mobile :
http://wiki.smartphonefrance.info/(S(cha3dg45znxcdbi5vtu24y45))/AllPages.aspx

lcov : http://ltp.sourceforge.net/coverage/lcov.php
LCOV is an extension of GCOV, […] a set of PERL scripts which build on the textual GCOV output :
* HTML based output: coverage rates […] bar graphs and specific colors
* Support for large projects: overview pages allow quick browsing of coverage data by providing three levels of detail: directory view, file view and source code view.

Using Code Coverage Tools in the Linux Kernel
gcov only provides statement and branch coverage. In order to get coverage data, programs must be compiled by gcc with the -fprofile-arcs and -ftest-coverage flags […] When the program terminates the counters are dumped to a file.
Once a program has terminated and the gcov counter data (.da files) exist, gcov is capable of analyzing the files and producing coverage output. To see the coverage data for a user space program, one may simply run gcov program.c where program.c is the source file. The .da file must also exist in the same directory.

lcov provides scripts to clear the gcov kernel counters.
lcov –zerocounters
Capture the gcov data by calling lcov with the capture option (-c), specifying an output file (-o).
lcov -c -o kerneltest.info

gcov: a Test Coverage Program

Exemple de résultat pour Mozilla : http://people.mozilla.com/~mnandigama/codecoverage_html/index.html

New AES software speed records,
Sur http://cryptojedi.org/users/peter/

Cache-timing resistant AES for 64-bit Intel processors
sur http://www.cryptojedi.org/crypto/index.shtml

Cracker rapide de md 5
Implementation de Gladman : http://gladman.plushost.co.uk/oldsite/AES/index.php
Diskcryptor aurait une implémentation particulièrement efficace d’AES en code généré.
Optimizing OpenSolaris With Open Source regroupe pas mal d’info sur les meilleurs implémentations. Polyakov défend en commentaire ses choix pour OpenSSL.
Il parle de l’implémentation de Marc Bevand

Une fois n’est pas coutume, le monde diplomatique signa là une analyse intelligente et très éloignée de ses réflexes conditionnés habituels :
Vers 1880 surgirent des barrières douanières

Les dernières instructions pour tout mettre en place sur DXR :
http://zenit.senecac.on.ca/wiki/index.php/Instructions_for_Setting_Up_DXR

Tinkering with DXR

GCC Rant + Progress I have another 3-4 patches that need to land before trunk GCC can run the hydras out of the box.

Bugzilla : Documentation des scripts la partie xpidl est là uniquement afin de relier les .h générés par xpidl au fichier d’origine

Package rpm dxr

Demo DXR C’est assez lent !

SSL_CTX_set_session_cache_mode, SSL_CTX_get_session_cache_mode – enable/disable session caching
http://www.openssl.org/docs/ssl/SSL_CTX_set_session_cache_mode.html

SSL_CTX_sess_set_cache_size, SSL_CTX_sess_get_cache_size – manipulate session cache size
http://www.openssl.org/docs/ssl/SSL_CTX_sess_set_cache_size.html

La solution est ici :
Context Operator (C/C++ Language Expressions)
When the expression evaluator encounters a symbol in an expression, it searches for the symbol in […]. With the context operator, you specify the starting point of the search and bypass the current location. You cannot specify a class, but you can specify a member function of the class.

{[function],[source],[module] } expression
{,EXAMPLE.CPP,}@301 : breakpoint at line 301 of EXAMPLE.CPP
If the source or module path includes a comma, an embedded space, or a brace, you must use quotation marks around the path […] (de préférence  » plutôt que ‘, car  » sera considéré comme faisant partie d’un nom de fichier !)

Astuce débugger :
Si un crash se produit après de nombreux appels, mais sytématiquement le même nombre.
Poser un point d’arrêt avec un compteur d’occurence très élevé, au moment du crash vérifier la valeur de ce compteur pour pouvoir s’arrêter juste avant la prochaine fois.

How to Not Step Into Functions using the Visual C++ Debugger Permet de mettre dans la base de registre les fonctions à ne pas prendre en compte pour le pas à pas avec F11.

Format des symboles : enter symbols in the same form used in the source code. expression that contains public symbols must use the decorated name of the symbol. You can get a listing of all names in their decorated and undecorated forms using the LINK /MAP option
If you cast to a type, the type must be known to the debugger. You must have another object of that type in your program. Types created using typedef statements are not supported.

La liste des principaux intrinsics est :

La version simple :
– chaque thread incremente et décrémente librement. On commence à zéro et on augmente. On ne peut pas resdescendre en-desous de zéro.
Interlocked increment et Decrement renvoient la valeur après l’opération.

– En Acquistion:
on teste sans lock si le compteur est zéro.
Si oui, on demande le lock d’écriture du pointeur.
Si on obtient le lock, on refait l’incrémentation.
Si elle passe de zéro à 1, on alloue le pointeur, puis on libère le lock.
Sinon on lit juste le pointeur avant de libérer le lock, car celui qui a obtenu le lock avant nous l’a déjà alloué et écrit.
Si le compteur sans lock est supérieur à zéro, … argh c’est pas si simple …

Mauvais scénario :
Au départ, Compteur zéro, pointeur NULL
– t1 incrémente, obtient 1 il doit allouer
– t2 incrément, obtient 2, cherche à lire le pointeur.
– t2 constate que le pointeur est NULL, il doit attendre.
– t1 écrit la valeur du pointeur alloué
– t2 prend la valeur du pointeur
– t2 décrémente, obtient 1
– t1 décremente, obtient 0, il doit mettre le pointeur à NULL, mais argh, il est dé-schedulé avant !
– t3 incrémente, obtient 1, mais tiens le pointeur n’est pas NULL ?
– t4 incrémente, obtient 2, le pointeur n’est pas NULL, prend le pointeur et travaille avec
– t1 reprend enfin la main, met le pointeur à NULL, puis le libère alors que t4 est en train de travailler avec => FATAL ERROR

Recommençons avec -1 (free) et (0 in alloc/desalloc) :
Au départ, Compteur -1, pointeur NULL
– t1 lit, il voit -1
– t2 lit, il voit -1
– t1 fait un compareExchange qui écrit 0 si la valeur est toujours -1
– t1 a réussi son compareExchange, il doit allouer
– t2 fait le même compareExchange qui échoue, il doit attendre
– t2 lit, il voit zéro, il doit attendre
– t1 écrit le nouveau pointeur, et incrémente la valeur à 1
– t2 lit, voit que la valeur est supérieure à 0, il n’a plus besoin d’attendre
– t2 incrémente la valeur à 2 et prend le pointeur
– t2 décrémente, obtient 1
– t1 décremente, obtient 0, il doit mettre le pointeur à NULL, mais argh, il est dé-schedulé avant !
– t3 lit, il voit zéro, il doit attendre
– t1 remet le pointeur à NULL, puis décrémente à -1
– t3 lit, il voit -1
– t4 qui arrive en même temps va voir -1 ou bien voir 0, peut importe seul l’un des deux entre t3 et t4 prendra la tache d’allouer le pointeur et l’autre attendra sans souci.

List the loaded modules in your crash report.
EnumerateLoadedModules(
GetCurrentProcess(), // Process Handle
// Callback function pointer
(PENUMLOADED_MODULES_CALLBACK) EnumerateLoadedModulesProc,
0 ); // User context.

BOOL CALLBACK EnumerateLoadedModulesProc( PSTR ModuleName,
ULONG ModuleBase,
ULONG ModuleSize,
PVOID UserContext )


La documentation MSDN de EnumerateLoadedModules64 Function : Voir aussi les autres fonctions DbgHelp à coté.

http://msdn.microsoft.com/fr-fr/library/8dbf701c(VS.80).aspx

http://support.microsoft.com/?scid=kb%3Ben-us%3B894573&x=9&y=6

Documentation des options de gflags.exe
Tous les flags de gflags
Gflags : Enable page heap Full/Standard
enable heap checking

La structure des blocs mémoire quand quand le page heap est activé
appverifier The Structure of a Page Heap Block
Corrupted Infix Pattern For Freed Block

Pour les systèmes 64 bits, cela semble ne pas bien marcher :
UST and 64 Bit Machines Procmon showed the OS was looking here: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
Try setting the key under Wow6432Node as well. The point of the article was that it’s tricky and not always consistent which key will be consulted for a 32 bit app running on a 64 bit OS, so you should set both to be sure.

!gflags and !gflag kernel debugger commands to view the state of the NtGlobalFlag
Advanced Windows Debugging: Memory Corruption Part II—Heaps !heap -p -a Address dt _DPH_BLOCK_INFORMATION Adresse_mem-0x20 dds StackTrace

Liste des commande de Windbg
x [Options] Module!Symbol Examine symbols that match the specified pattern
x Module!* Affiche tous les symboles d’un module

Document des switch !heap !heap -srch [-b|-w|-d|-q] PATTERN searches for the given pattern.

Des trucs pour winddbg cdb.exe -c « !heap -h 0;q » -z prg.dmp > heap.log to get all heap allocations. if your objects have vtables, just use the dds command to seek some of the heap allocations.
http://blogs.msdn.com/slavao/archive/2005/01/30/363428.aspx : Sortir la pile de l’appel qui a provoqué l’exception

Reconstituer la pile d’appel après qu’elle ait été corrompue : the call stack information is stored in teb (thread environment block).
~
. 0 Id: a550.a5a8 Suspend: 1 Teb: 7ffdf000 Unfrozen
dds 7ffdf000
7ffdf000 0012ff88 00130000 00126000 00000000
7ffdf010 00001e00 00000000 7ffdf000 00000000
where 00130000 is the stack base address and 00126000 is stack limited
0:000> dd 00130000-250 00130000
Because our program’s address space is between 00400000 00419000, we just check address in call stack and between 00400000 00419000
ln 004112f2
(004112e0) stackIssue1!foo2+0x12 | (00411310) stackIssue1!foo1

Umdh.exe set _NT_SYMBOL_PATH. Turn on stack tracing using: ‘gflags -i +ust’
Two Minute Drill: UMDH.EXE
tlist
umdh –p:pid –f:before.txt
umdh –p:pid –f:before.txt
set NT_SYMBOL_PATH=srv*c:\symbols*http://msdl.microsoft.com/download/symbols
umdh [-d] before.txt after.txt > result.txt

Another alternative is to use LeakDiag


Windows Debuggers: Part 1: A WinDbg Tutorial
WinDbg cheat sheet

Windbg: Conditional Breakpoints with string pattern
Pour exécuter un fichier : bp driver!functionName « $$< C:\\debugCommands.txt" Instruction conditionnelle : .if ( $spat( "${MyAlias}", "*str*" ) != 0 ) { g }
Debugger flow control: Using conditional breakpoints (part 3)
Plusieurs instructions : bp kernel32!CreateFileW « du poi(@esp+4);kv;gu;? @eax; g »
SetThreadContext peut désactiver les breakpoint hardware mais cela se corrige voir la méthode

How to use a symbol server with the Visual Studio .NET debugger Symbol server avec VS 2003

L’article du rapport sur l’attaque :
http://www.win.tue.nl/hashclash/rogue-ca/

Windows Performance Analysis Tools : Contient Xperf.exe , Xperfview.exe et Xbootmgr.exe

Windows Performance Toolkit – Xperf : One of the most powerful features in Performance Analyzer is the ability to visualize stacks. It’s important to note that this requires no special instrumentation in the code – only that you have symbols for the binary components you are interested in analyzing.

  • Set the _NT_SYMBOL_PATH to your symbol store :
  • xperf -on latency -stackwalk Profile.
  • Run the application that you wish to analyze
  • You can end the trace by using the regular xperf –d .etl command.
  • Load the trace in the viewer and then select the Load Symbols from the Trace drop down menu.
  • Once the symbols are loaded, select an interesting region on the CPU sampling graph.
  • Right click and select Summary Table.


Using the Windows Sample Profiler with Xperf :

  • xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE
    -stackwalk profile
    -minbuffers 16 -maxbuffers 1024 -flushtimer 0
    -f e:\tmp.etl
  • faire tourner le programme à tester
  • xperf -d profile.etl


The Xperf Command Line Tool in Detail : An Example

Sinon avec Visual Studio Team System : Visual Studio Team System Walkthrough: Command-Line Profiling Using Sampling

Voir http://www.vasanth.in/2009/02/19/nokia-email-on-e71/

Le client intégré n’est pas terrible, mais Nokia fourni une version téléchargeable beaucoup plus performante.

enrollsvc.dll existe et semble lier à un service utilisé pour l’enrollement

Methode d’enrollement OTA avec WM 6 : Utilise wap-provisioningdoc
http://bansky.net/blog/2008/11/enrolling-user-certificate-into-windows-mobile-over-the-air/

Repose sur CertificateEnroller CSP : The CertificateEnroller Configuration Service Provider in Windows Mobile 6 enables you to generate certificates
http://msdn.microsoft.com/en-us/library/bb737636.aspx
Device Description Framework (DDF) file for the CertificateEnroller Configuration Service Provider. Open Mobile Alliance Device Management (OMA DM) DDF files and the example in this topic are used only for OMA DM provisioning.
http://msdn.microsoft.com/en-us/library/bb737418.aspx
Certificate Management in Windows Mobile
http://msdn.microsoft.com/en-us/library/bb416317.aspx
The certificate stores are located in two areas of the registry:
* HKEY_CURRENT_USER\Comm\Security\SystemCertificates
* HKEY_LOCAL_MACHINE\Comm\Security\SystemCertificates

La liste des CSP est stockée dans :
* HKEY_LOCAL_MACHINE\Comm\Security\Crypto\Defaults\Provider
=> Microsoft Base
=> Microsoft Base DSS
=> Microsoft Enhanced RSA
=> Microsoft Enhanced DSS
=> Microsoft Enhanced AES

C’est partiellement documenté ici :
http://msdn.microsoft.com/en-us/library/ms884655.aspx

Page MSDN sur les CSP About Cryptographic Service Provider :
http://msdn.microsoft.com/en-us/library/ms884340.aspx

Page MSDN sur les certificats dans Windows CE .NET 4.2 :
http://msdn.microsoft.com/en-us/library/ms883655.aspx
CryptEnumProvidersU non supporté ?
http://msdn.microsoft.com/en-us/library/ms883695.aspx

Personal Certificate Import Utility for Pocket PC 2003 and Windows Mobile
http://www.jacco2.dds.nl/networking/p12imprt.html
Source:
http://www.jacco2.dds.nl/networking/p12imprt_src.zip
Windows Mobile 5.0 and higher support the PFXImportCertStore() function.
My idea was to [..] import these datastructures using the regular API, such as CryptImportKey().
Documentation du Web Enrollement :
http://www.jacco2.dds.nl/networking/crtimprt-org.html#Webenrollment
– Windows 200x server must be configured to immediately issue certificates
– On your client host PC, compile the ENROLL sample files included with the Pocket PC 2003 SDK. (suprimé des versions suivantes)
– Edit the ENROLL.CFG file: change the server address and enter Windows 200x’s server name/IP address. Also enter the name and password of the user account
– ENROLL.EXE should report « Cert Has Been Added Succesfully ». If you go to Settings -> System -> Certificates, the certificate should be listed.

CertificateEnroller Configuration Service Provider Examples for OMA Client Provisioning
http://msdn.microsoft.com/en-us/library/bb737707.aspx

Desktop Certificate Enrollment
http://msdn.microsoft.com/en-us/library/bb416312.aspx

Web enrolment on Windows Mobile 6
http://www.jacco2.dds.nl/networking/windowsmobile-certinstall.html#Webenrollment

MSDN : Enrolling Devices
http://technet.microsoft.com/en-us/library/dd261805.aspx
MSDN : Enrolling for a Certificate : Regroupe toutes les techniques
http://msdn.microsoft.com/en-us/library/ms897531.aspx

Voir cet article pour les interfaces Framework:
http://msdn.microsoft.com/en-us/library/ms180945%28VS.80%29.aspx

How to: Sign Messages by One Signer : This example creates a CMS/PKCS #7 signed message by using System.Security.Cryptography.Pkcs
http://msdn.microsoft.com/en-us/library/ms180956(VS.80).aspx
How to: Sign a Message by Multiple Signers : This example creates a CMS/PKCS #7 signed message by using System.Security.Cryptography.Pkcs.
http://msdn.microsoft.com/en-us/library/ms180957.aspx
Mais
CmsSigner Class Pas supporté par Compact Framework
X509Store ¨Pas supporté par Compact Framework

Le plus simple pour le compact framework : Ouvrir C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\mscorlib.dll, vérifier ce qu’elle contient :
– System.Security.Cryptography avec un bon paquet de sous-classes : CryptoAPITransform, CspKeyContainerInfo, CspParameters, RSA, RSACryptoServiceProvider, RSAParameters, RSAPKCS1SignatureFormatter (CreateSignature),
– System.Security.Cryptography.X509Certificates X509Certificate dont CreateFromCertFile, Import
Tout ceci est très limité et oblige à passer par autre chose

http://msdn.microsoft.com/fr-fr/library/ms229745(VS.80).aspx Comment : signer des documents XML avec des signatures numériques

XmlQueryRuntime Class : Provides methods and properties to support the XSLT processor.
http://msdn.microsoft.com/en-us/library/system.xml.xsl.runtime.xmlqueryruntime.aspx
Non supporté sur Compact Framework !

XML for Windows CE
http://msdn.microsoft.com/en-us/library/ms910782.aspx
There is support for XSLT through the TransformNode method

Portage de MSXML *3* in Windows Mobile 5.0 :
http://blogs.msdn.com/cenet/archive/2005/07/08/msxml-in-windows-mobile-5-0.aspx

XML DOM Security
http://msdn.microsoft.com/en-us/library/ms931337.aspx

dSig ?

CertVerify : Vérifie la sécurité des programmes
http://msdn.microsoft.com/en-us/library/aa925236.aspx

Description de la sécurité module de WM 6
http://blogs.gotdotnet.com/ce_base/archive/2007/01/02/ce6-module-security.aspx

Documentation msdn du Security Model de WM6
http://technet.microsoft.com/en-us/library/cc182298.aspx
CSP disponibles:
http://technet.microsoft.com/en-us/library/cc182284.aspx
Windows CE Enhanced Cryptographic Service Provider 5.01 (this is the default for Windows Mobile-powered devices
Le document suivant prouve que WM gère le SHA-2 :
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp560.pdf
Version remise à jour :
http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp825.pdf