[TUTO] Application à base de plugin

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [TUTO] Application à base de plugin

Message par falsam »

Bonjour Lepiaf. En Php il existe pas mal d'applications de blogging par exemple sur lesquelles se greffe des plugins tiers. Parfois il arrive qu'un de ces plugins pertube le coeur de l'application Php voir, pirate des informations utilisateurs. A toi de savoir si tu fais confiance ou pas au créateur du plugin. Le web est là pour se faire rapidement une opinion dans ce cas précis.

G_Rom a tout dit "le problème est donc insoluble. dans un plugin , tu mets ce que tu veux... c'est clair qu'en terme de sécurité , c'est pas top..."
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: [TUTO] Application à base de plugin

Message par lepiaf31 »

G-Rom a écrit : regarde sur le net , fait un plugin pour 3dsmax. qu'est ce qui t'empêche de faire un virus en guise de plugin ? rien.
Je ne sais pas, je ne connais pas les plug-in 3ds max mais peut-etre y a t-il une surcouche ? En tout cas, j'ai pas mal réfléchi à faire cela ces derniers temps et c'est un des grand avantage du JAVA. On peut faire un byte code et l'utiliser en tant que plus-in tout en controlant ce que peut faire ce plug-in (ca va de la gestion droits d'accès aux fichiers à la gestion du réseau).

Voilà, c'était pas pour critiquer, mais seulement pour apporter un complément ;)
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: [TUTO] Application à base de plugin

Message par G-Rom »

tu as bien fait. Si on veut se rapprocher de java ( que je ne supporte pas au passage ) , il fraudais se rapproché du processeur pour avoir accès au byte code du programme, faire des analyse avec des motifs de code , avoir une heuristique solide , etc... codé un antivirus quoi :D
le java, comme c'est interpréter par une machine virtuelle , tu peut intervenir en amont.

@++
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [TUTO] Application à base de plugin

Message par blendman »

Salut

ça y est, ça marche nickel (en changeant CallFunction), encore merci ;).
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: [TUTO] Application à base de plugin

Message par venom »

Merci pour ce tuto G-Rom :wink:
Comme d'habitude.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [TUTO] Application à base de plugin

Message par Backup »

Merci pour ce Tuto :)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [TUTO] Application à base de plugin

Message par blendman »

salut

Je poste juste pour signaler qu'avec la 5.31, on ne peut plus utiliser de type natifs avec les pointeurs, donc certaines parties du code sont à réadapter ;).

Du coup, j'ai une erreur sur ce code-ci :

Code : Tout sélectionner

Procedure.i imageToArray(pbImage.i, width.i, height.i)

  *nArray = AllocateMemory( (width * height) * 4 ) ; RGBA
 
  If StartDrawing(ImageOutput(pbImage))
    
    DrawingMode(#PB_2DDrawing_AlphaBlend)
    
    For y = 0 To height -1
      For x = 0 To width -1
        color.l = Point(x,y)
        
        PokeC( (*nArray + (x*4) + ImageWidth(pbImage) * (y*4))+0 , Red(color) )
        PokeC( (*nArray + (x*4) + ImageWidth(pbImage) * (y*4))+1 , Green(color) )
        PokeC( (*nArray + (x*4) + ImageWidth(pbImage) * (y*4))+2 , Blue(color) )
        PokeC( (*nArray + (x*4) + ImageWidth(pbImage) * (y*4))+3 , Alpha(color) )
        
      Next
    Next
    StopDrawing()
  EndIf
 
  ProcedureReturn *nArray
EndProcedure
à la ligne

Code : Tout sélectionner

PokeC( (*nArray + (x*4) + ImageWidth(pbImage) * (y*4))+3 , Alpha(color) )
J'ai le message "overflow in a dynamically allocated memory block"

Comme on ne peut plus mettre *nArray.c = AllocateMemory( (width * height) * 4 ) ; RGBA
j'imagine que le soucis vient de là ^^.
Mais je ne sais pas comment corriger ce pb.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: [TUTO] Application à base de plugin

Message par G-Rom »

Quelle taille fait ton image ?
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [TUTO] Application à base de plugin

Message par blendman »

G-Rom a écrit :Quelle taille fait ton image ?
1024*768
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: [TUTO] Application à base de plugin

Message par G-Rom »

Le problème dois venir d'ailleurs, j'ai pas de soucis.
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: [TUTO] Application à base de plugin

Message par Ollivier »

La taille en octet du caractère qui passe de 8 bits (mode ASCII) à 16 bits (mode UNICODE)?

Tu as alors un dépassement de 1 octets dans la zone allouée lors du traitement du dernier caractère de la zone.

>> Tester PeekA() / PokeA()
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: [TUTO] Application à base de plugin

Message par G-Rom »

Bien vu. le problème est surement là.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: [TUTO] Application à base de plugin

Message par G-Rom »

C'est surtout pour assuré l'ordre des couleurs , comme on ne maitrise pas l'interne de PB , j'ai préféré mouliné à la main chaque composante, encore plus rapide aurais été des copymemory() par ligne.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [TUTO] Application à base de plugin

Message par blendman »

Je vais tester les listes pour voir ;).
Spock a écrit :(fo que j'me tire dla , vais finir par reprendre le virus... fo pas, fo pas .. )
mais non, reviens :)
c'est sans danger, le virus purebasic :mrgreen:
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [TUTO] Application à base de plugin

Message par blendman »

je suis tombé sur ce code, qui permet de transférer une image d'une dll vers un programme purebasic (donc l'inverse est aussi faisable).

Du coup, je me suis dit que c'était beaucoup plus simple pour modifier une image via une dll ;)

La dll (nommée image.dll ):

Code : Tout sélectionner

ProcedureDLL.i ReturnImage (w, h, depth, backcolor)
 Protected *this
 Protected tmp = CreateImage(#PB_Any, w, h, depth, backcolor)
 
 UsePNGImageEncoder()       
 *this = EncodeImage(tmp, #PB_ImagePlugin_PNG)
 FreeImage(tmp)
 ProcedureReturn *this
EndProcedure

ProcedureDLL FreeMemoryDLL (*add)
 FreeMemory(*add)   
EndProcedure

Le pragramme :

Code : Tout sélectionner

Prototype ReturnImage(w,h,d,bkg)
Prototype FreeMemoryDLL(*add)

UsePNGImageDecoder()

OpenLibrary(0, "image.dll")
Global ReturnImage.ReturnImage = GetFunction(0, "ReturnImage")
Global FreeMemoryDLL.FreeMemoryDLL = GetFunction(0, "FreeMemoryDLL")

*this = ReturnImage(256,256,24,#Red)
CatchImage(0, *this)
FreeMemoryDLL(*this)


OpenWindow(0,0,0,ImageWidth(0),ImageHeight(0),"",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(0,0,0,0,0,ImageID(0))
Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow
Edit : le lien vers le sujet
http://www.purebasic.fr/english/viewtop ... 13&t=61904
Dernière modification par blendman le lun. 20/juil./2015 14:57, modifié 1 fois.
Répondre