Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7010001
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T21:56:03+00:00 2026-05-27T21:56:03+00:00

I have an array of Relative Virtual Addresses (RVAs) located at a particular memory

  • 0

I have an array of Relative Virtual Addresses (RVAs) located at a particular memory address. I can dump it in windbg and see the list of RVAs as show below:

dd 77f10000+00002650 and
output is:
77f12650 000034a6 000034af 000034b9 000034ce
….

Here, 77f10000 is the base address of the DLL and 00002650 is the RVA of the array which I have displayed.

Now, each of these RVA’s in the memory dump can be added to the base address of the DLL and the corrresponding string at the location can be viewed.

For instance, if I take the first entry in the array which is: 000034a6

By adding this RVA to the base address of DLL, 77f10000 and displaying it as follows:

da 77f10000+000034a6 and
output is: 77f134a6 “AbortDoc”

now, this way, I can view the next string for the next corresponding RVA in the array by doing the following:

da 77f10000+000034af and
output is: 77f134af “AbortPath”

Similarly I want to iterate over the remaining entries in the array and display the corresponding strings.

I want to do this using a one liner script in windbg. I want to learn how to do this however I could not find enough documentation or examples around on the net which would help me craft something similar.

I think the, .foreach command can be used to do this:

Example: .foreach(myVariable {dd 77f10000+00002650}){!do }
myVariable is going to store the output of the windbg command. However, I need to pick one element at a time from the line and iterate.

Any help would be appreciated.

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T21:56:04+00:00Added an answer on May 27, 2026 at 9:56 pm

    It’s unfortunately harder than it should be because the dd command displays not only the result but the address of the result, so .foreach is going to iterate over both. While I couldn’t do it in one line, I did it in a script file that only looks long because of the comments:

    $$ Set up the base of the RVA array as a pointer to an integer.
    r? @$t0 = ((int *)(0x8068f764))
    
    $$ To break down the command:
    
    $$ r?                - Allows you to assign a pseudo register and give it a type
    $$ @$t0              - Pseudo register for use in scripting
    $$ ((int *)(address) - Assign the type int * to the result
    
    
    $$ Loop over the entries in the array, 100 is arbitrary and should be replaced
    .for (r @$t1 = 0; @$t1 < 100; r @$t1 = @$t1 + 1) 
    {
        $$ Display the ASCII string at the given offset. This is similar to:
        $$ 
        $$ printf("%s\n", baseAddr+(offsetArray[i])
        $$
        $$ @@c++() is required so that @$t0 is treated as an int *
    
        da nt+(@@c++(@$t0[@$t1]));
    }
    

    Save to a TXT file and run with the following command:

    0: kd> $$><c:\dumps\dumprvas.txt
    80691a4b  "CcCanIWrite"
    80691a57  "CcCopyRead"
    80691a62  "CcCopyWrite"
    80691a6e  "CcDeferWrite"
    80691a7b  "CcFastCopyRead"
    80691a8a  "CcFastCopyWrite"
    ...
    

    If I were doing this for real I’d clean that up even more and make the base address and entry count parameters to the script, which would make it more useful. I left it out here though for clarity (well, as much clarity as can be expected with these scripts :)).

    -scott

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a game which displays an array of colored blocks. The user can
If I have a list(or array, dictionary....) in python that could exceed the available
I have an array of image files with relative paths, like this: gallery/painting/some_image_name.jpg .
<key>UINewsstandApp</key> <true/> <key>UINewsstandIcon</key> <dict> <key>CFBundleIconFiles</key> <array> <string>images/AppIcon-114.png</string> </array> </dict> I have an image located
i have array unknown size i want to transfer to matrix[n][2].Example; D[c]=1,2,3,4,5 D[c/2][2]= 1
I have array of select tag. <select id='uniqueID' name=status> <option value=1>Present</option> <option value=2>Absent</option> </select>
I have array like this: $path = array ( [0] => site\projects\terrace_and_balcony\mexico.jpg [1] =>
I have array result like this: Array ( [0] => stdClass Object ( [id_global_info]
I have array of strings, String[] data and it's 10 elements has value P
if i have array array[0] = jack; array[1] = jill; array[2] = lisa; array[2]

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.