VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



DMA in VB

by Qages (1 Submission)
Category: VB function enhancement
Compatability: Visual Basic 3.0
Difficulty: Intermediate
Date Added: Wed 3rd February 2021
Rating: (4 Votes)

DMA, create DMA emulation In vb.

Rate DMA in VB

DMA. Dynamic Memory Allocation.
vb is non-dma, this means that the memory address for a varable will be the same when the user reopens your program (will change if you add lots of new code).
 this is bad because h4x0rs can steal or modify your program.
 to make a emulation of DMA in vb, just redim a Array varable by random numbers and use whats in the middle. its simple.

ill give a example below 



25682 ' this is a random number, really doesnt have any importance,

redim stack((25682 - 6) To (25682 + 8)) ' the RAMDOM numbers 6,8 are the impornant


[memory address] [place in our array]

00000000     1 (-6)

00000002     2 (-5)

00000004     3 (-4)

00000008     4 (-3)

0000000A     5 (-2)

0000000C     6 (-1)

0000000E     7 (+0) '- Our middle numbers, this is what we want to use

00000010     8 (+1)

00000012     9 (+2)

00000014     10 (+3)

00000018     11 (+4)

0000001A     12 (+5)

0000001C     13 (+6)

0000001E     14 (+7)

00000020     15 (+8)




ok the user closed the programan reloads it now creats new random numbers.




ReDim stack((55431 - 2) To (55431 + 10)) ' the RANDOM numbers 2,10 are the impornant


[memory address][place in our array]

00000000     1 (-2)

00000002     2 (-1)

00000004     3 (+0) '- Our middle numbers, this is what we want to use

00000008     4 (+1)

0000000A     5 (+2)

0000000C     6 (+3)

0000000E     7 (+4) 

00000010     8 (+5)

00000012     9 (+6)

00000014     10 (+7)

00000018     11 (+8)

0000001A     12 (+9)

0000001C     13 (+10)


ok the first time the user opend the program the memory address for the middle (+0) is 0000000E, the next time its 00000004, 
there its diffrent memory address! DMA

Heres the Complete code to use:




'globals

dim stack() as single ' we need tomake this a array! important

dim STACKNUM as long



' thecode

dim STACKNUMfrom as byte

dim STACKNUMto as byte

STartR:

Randomize

STACKNUM = Int(((999999) * Rnd) + 3000) ' + 3000 - TO make sure were not 0 or some low number

STACKNUMfrom = Int(((99) * Rnd)) ' increase 99 for more randomness, decrese for less memory useage

STACKNUMto = Int(((99) * Rnd)) ' increase 99 for more randomness, decrese for less memory useage



ReDim stack((STACKNUM - STACKNUMfrom) To (STACKNUM + STACKNUMto)) As Single



'you canuse more that just the middle number(STACKNUM), to use more use STACKNUM + whatever and STACKNUM - Whatever,
 and use the code below tomake sure you have enuf spacein the array



If STACKNUMto < 2 Then ' STACKNUMto this is for our + STACKNUM, the number 2 is howmuch we want to use. can be used for
 - STACKNUM too.

GoTo STartR

End If





to use this just use:
stack(STACKNUM)  or  

stack(STACKNUM + 1) 






Download this snippet    Add to My Saved Code

DMA in VB Comments

No comments have been posted about DMA in VB. Why not be the first to post a comment about DMA in VB.

Post your comment

Subject:
Message:
0/1000 characters