So, I have a long list of folders that I need to import into a VCS (probably git). Has anyone any suggestions how to automate this process?
2016_09_02_Backup 2017_04_24_Backup 2018_10_23_001_WarExport
2016_09_08_Backup 2017_04_24_WarExport 2018_10_23_002_WarExport
2016_09_09_Backup 2017_06_26_Backup 2018_10_23_003_WarExport
2016_09_09_WarExport 2017_06_26_WarExport 2018_10_23_004_WarExport
2016_09_12_WarExport 2017_06_30_Backup 2018_10_23_005_WarExport
2016_09_13_WarExport 2017_06_30_WarExport 2018_10_23_006_WarExport
2016_09_14_WarExport 2017_07_11_Backup 2018_10_23_007_WarExport
2016_09_15_WarExport 2017_07_12_Backup 2018_10_23_008_WarExport
2016_09_16_WarExport 2017_07_13_Backup 2018_10_23_009_WarExport
2016_09_19_WarExport 2017_08_21_Backup 2018_10_24_001_WarExport
2016_09_20_WarExport 2017_08_21_WarExport 2018_10_24_002_WarExport
2016_09_22_Backup 2017_10_05_Backup 2018_10_24_003_WarExport
2016_09_22_WarExport 2017_10_05_WarExport 2018_11_22_001_WarExport
2016_09_26_Backup 2018_08_13_WarExport 2018_11_22_002_WarExport
2016_09_27_Backup 2018_08_14_WarExport 2018_11_29_Backup
2016_09_27_WarExport 2018_08_15_001_WarExport 2018_11_29_WarExport
2016_11_10_Backup 2018_08_15_002_WarExport 2018_12_12_Backup
2016_11_10_WarExport 2018_08_15_003_WarExport 2018_12_12_WarExport
2016_12_22_Backup 2018_08_15_004_WarExport 2019_04_10_WarExport
2016_12_23_Backup 2018_08_15_005_WarExport 2019_05_07_WarExport
2017_01_02_Backup 2018_08_15_006_WarExport 2019_05_27_WarExport
2017_01_31_Backup 2018_08_15_007_WarExport 2019_06_14_WarExport
2017_02_23_Backup 2018_08_15_Backup 2019_07_15_WarExport
2017_02_23_WarExport 2018_09_26_001_WarExport 2019_08_09_001_WarExport
2017_02_27_Backup 2018_09_26_002_WarExport 2019_08_09_002_WarExport
2017_02_27_WarExport 2018_10_11_WarExport 2019_08_09_003_WarExport
2017_03_13_Backup 2018_10_16_WarExport 2019_08_12_002_WarExport
2017_03_13_WarExport 2018_10_18_Backup 2019_08_12_003_WarExport
2017_03_30_Backup 2018_10_19_001_WarExport 2019_08_12_WarExport
2017_03_30_WarExport 2018_10_19_002_WarExport 2019_08_14_WarExport
2017_04_03_Backup 2018_10_19_003_WarExport 2020_04_28_Current
2017_04_03_WarExport 2018_10_22_WarExport
Every folder has about the same structure (code files, project settings etc) just evolving over time.
Related
I have VS2017 installed and I am connecting to VSTS online.
The Output window (Show output from Source Control - Team Foundation) is filling up with Illegal characters in path. output.
I don't know why. I have seen this appear a few times on other projects but never investigated why. Today I had a chance to catch the problem.
The structure of the project is as follows:
FullStackAspNetCore\.editorconfig
FullStackAspNetCore\database
FullStackAspNetCore\docs
FullStackAspNetCore\Files.txt
FullStackAspNetCore\FullStackAspNetCore.sln
FullStackAspNetCore\FullStackAspNetCore.vssscc
FullStackAspNetCore\src
FullStackAspNetCore\test
FullStackAspNetCore\.vs\config
FullStackAspNetCore\.vs\FullStackAspNetCore
FullStackAspNetCore\.vs\config\applicationhost.config
FullStackAspNetCore\.vs\FullStackAspNetCore\v15
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Acme.FullStack.SqlServerDB.dbmdl
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Acme.FullStack.SqlServerDB.sqlproj
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Acme.FullStack.SqlServerDB.sqlproj.user
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Acme.FullStack.SqlServerDB.sqlproj.vspscc
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\dbo
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Import Schema Logs
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\obj
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\scripts
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin\Debug
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin\Release
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin\Debug\Acme.FullStack.SqlServerDB.dacpac
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin\Debug\Acme.FullStack.SqlServerDB.dll
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\bin\Debug\Acme.FullStack.SqlServerDB.pdb
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\dbo\Tables
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\dbo\Tables\ApplicationRoles.sql
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\dbo\Tables\ApplicationUsers.sql
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\dbo\Tables\__EFMigrationsHistory.sql
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\Import Schema Logs\Acme.FullStack.SqlSe_20170629095103.log
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\obj\Debug
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\obj\Debug\Acme.FullStack.SqlServerDB.dll
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\obj\Debug\Acme.FullStack.SqlServerDB.pdb
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\obj\Debug\Acme.FullStack.SqlServerDB.sqlproj.FileListAbsolute.txt
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\scripts\dev
FullStackAspNetCore\database\Acme.FullStack.SqlServerDB\scripts\dev\insert dev data.sql
FullStackAspNetCore\docs\Entity Framework.md
FullStackAspNetCore\src\Acme.FullStack.Data.EF
FullStackAspNetCore\src\Acme.FullStack.Data.Model
FullStackAspNetCore\src\Acme.FullStack.Web
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Acme.FullStack.Data.EF.csproj
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Acme.FullStack.Data.EF.csproj.vspscc
FullStackAspNetCore\src\Acme.FullStack.Data.EF\appsettings.json
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Contexts
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Migrations
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.deps.json
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.dll
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.pdb
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.dll
FullStackAspNetCore\src\Acme.FullStack.Data.EF\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.pdb
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Contexts\ApplicationDbContext.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Contexts\AuthenticationDbContext.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Contexts\AuthenticationDbContextFactory.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Migrations\20170629093101_InitialCreate.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Migrations\20170629093101_InitialCreate.Designer.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\Migrations\AuthenticationDbContextModelSnapshot.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Acme.FullStack.Data.EF.csproj.nuget.g.props
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Acme.FullStack.Data.EF.csproj.nuget.g.targets
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\project.assets.json
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.AssemblyInfo.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.csproj.FileListAbsolute.txt
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.csprojResolveAssemblyReference.cache
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.dll
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.EF.pdb
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\CoreCompileInputs.cache
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
FullStackAspNetCore\src\Acme.FullStack.Data.EF\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\Acme.FullStack.Data.Model.csproj
FullStackAspNetCore\src\Acme.FullStack.Data.Model\Acme.FullStack.Data.Model.csproj.vspscc
FullStackAspNetCore\src\Acme.FullStack.Data.Model\Authentication
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj
FullStackAspNetCore\src\Acme.FullStack.Data.Model\Authentication\ApplicationRole.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\Authentication\ApplicationUser.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin\Debug
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.deps.json
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.dll
FullStackAspNetCore\src\Acme.FullStack.Data.Model\bin\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.pdb
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Acme.FullStack.Data.Model.csproj.nuget.g.props
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Acme.FullStack.Data.Model.csproj.nuget.g.targets
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\project.assets.json
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.AssemblyInfo.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.csproj.FileListAbsolute.txt
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.csprojResolveAssemblyReference.cache
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.dll
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\Acme.FullStack.Data.Model.pdb
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\CoreCompileInputs.cache
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
FullStackAspNetCore\src\Acme.FullStack.Data.Model\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
FullStackAspNetCore\src\Acme.FullStack.Web\Acme.FullStack.Web.csproj
FullStackAspNetCore\src\Acme.FullStack.Web\Acme.FullStack.Web.csproj.vspscc
FullStackAspNetCore\src\Acme.FullStack.Web\bin
FullStackAspNetCore\src\Acme.FullStack.Web\obj
FullStackAspNetCore\src\Acme.FullStack.Web\Program.cs
FullStackAspNetCore\src\Acme.FullStack.Web\Properties
FullStackAspNetCore\src\Acme.FullStack.Web\Startup.cs
FullStackAspNetCore\src\Acme.FullStack.Web\wwwroot
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1\Acme.FullStack.Web.deps.json
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1\Acme.FullStack.Web.dll
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1\Acme.FullStack.Web.pdb
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1\Acme.FullStack.Web.runtimeconfig.dev.json
FullStackAspNetCore\src\Acme.FullStack.Web\bin\Debug\netcoreapp1.1\Acme.FullStack.Web.runtimeconfig.json
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Acme.FullStack.Web.csproj.nuget.g.props
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Acme.FullStack.Web.csproj.nuget.g.targets
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug
FullStackAspNetCore\src\Acme.FullStack.Web\obj\project.assets.json
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\Acme.FullStack.Web.AssemblyInfo.cs
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\Acme.FullStack.Web.csproj.FileListAbsolute.txt
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\Acme.FullStack.Web.csprojResolveAssemblyReference.cache
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\Acme.FullStack.Web.dll
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\Acme.FullStack.Web.pdb
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\CoreCompileInputs.cache
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
FullStackAspNetCore\src\Acme.FullStack.Web\obj\Debug\netcoreapp1.1\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
FullStackAspNetCore\src\Acme.FullStack.Web\Properties\launchSettings.json
Does anyone know where to look to start diagnosing this?
Quick & Dirty solution:
Focus on the output window, hit 'Esc'.
Other have pointed that disabling the "Source Control - Team Foundation" menu bar solves the issue.
https://developercommunity.visualstudio.com/content/problem/166821/illegal-characters-in-path-being-emitted-continuou.html
I am trying to sort several csv files by the first column. Here is a an example of the output that I get:
OR7
OR8
OR10
OR100
OR101
OR102
OR103
OR104
OR105
OR106
OR107
OR109
OR11
OR111
OR113
OR114
OR115
OR117
OR119
Here is the command that I am using: sort -k 1.3,1.4n -k1.5n file (I am sorting by the first column)
However I would like to have it sorted like this:
OR7
OR8
OR10
OR11
OR100
OR101
OR102
OR103
OR104
OR105
OR106
OR107
OR109
OR111
OR113
OR114
OR115
OR117
OR119
I know that there are other similar questions here, but I could not figure out how to adapt their solution to my problem.
I am also using MacOS. I was just looking at an Ubuntu machine and the sort has more option (checking "man sort"). For example, when I try to use -V on my computer it does not work.
Thank you for your time.
Well I found a way around it in R. Since my goal was to make a Trellis plot. What I did was to set the column with the gene names as a factor and in the order I wanted. For example:
OR$Gene<-factor(OR$Gene, levels=(c("OR2", "OR3", "OR4", "OR5", "OR6", "OR7", "OR8", "OR10", "OR11", "OR12", "OR13", "OR14", "OR15", "OR16", "OR17", "OR18", "OR19", "OR20", "OR21", "OR23", "OR24", "OR25", "OR26", "OR27", "OR28", "OR30", "OR31", "OR33", "OR36", "OR39", "OR41", "OR42", "OR43", "OR44", "OR45", "OR47", "OR48", "OR49", "OR50", "OR52", "OR55", "OR56", "OR59", "OR62", "OR63", "OR66", "OR67", "OR69", "OR70", "OR71", "OR72", "OR76", "OR78", "OR79", "OR80", "OR81", "OR84", "OR85", "OR86", "OR87", "OR88", "OR91", "OR92", "OR93", "OR94", "OR95", "OR96", "OR97", "OR98", "OR100", "OR101", "OR102", "OR103", "OR104", "OR105", "OR106", "OR107", "OR109", "OR111", "OR113", "OR114", "OR115", "OR117", "OR119", "OR121", "OR122", "OR123", "OR124", "OR125", "OR126", "OR130"))
Then with the xyplot print command I used the index.cond:
index.cond = list(OR$Gene),
Well I got what I wanted, I am sure might be an easier way out there.
Best,
My project has a group with a few hundred files (organized into a couple dozen subgroups two levels deep). The files in that group are themselves being changed reasonably often. I want those files to be included in some targets, but not others.
In Xcode 3.x, after each change to the group, I would just Get Info on the group itself, go to the Targets tab, and (re-)select the targets I wanted. (This was, in fact, the answer to a nearly-identical question from 2010, Xcode — groups and targets.)
In Xcode 5, the equivalent File Inspector panel doesn't have a Target Membership section if you have a group selected (and, even if selecting a group were the same as selecting all of its files, the Target Membership checkboxes are disabled if you select more than one file).
So, is this functionality still there, but hidden somewhere I haven't been able to find it?
If not, obviously there are other ways I can do what I want—script Xcode, parse the .pbxproj file, or abstract the group into a subproject or an entirely separate project that builds a static lib, etc. But I'd love to be able to work with Xcode here, the way I did in 3.x, instead of have to fight against it.
Actually, scripting Xcode doesn't seem to work. Any attempt to get the build files of a build phase fails with a generic -10000 error. For example:
tell application "Xcode"
set theproject to project "SampleProject"
set thetarget to target "SampleTarget" of theproject
set thephase to build phase "Compile Sources" of thetarget
build files of phase
end tell
… fails on the last line with:
error "Xcode got an error: AppleEvent handler failed." number -10000
Here's the hack I ended up using—I'd obviously still appreciate a better solution.
#!/usr/bin/env python3
import os
import plistlib
import sys
pbxproj = os.path.join(sys.argv[1], 'project.pbxproj')
groupname = sys.argv[2]
extensions = 'm mm c cc cpp'.split()
with open(pbxproj, 'rb') as f:
p = plistlib.load(f)
objs = p['objects']
groupid, group = next((k, v) for k, v in objs.items()
if v.get('path') == groupname)
def descendants(id):
obj = objs[id]
if obj['isa'] == 'PBXFileReference':
yield (id, obj)
for child in obj.get('children', []):
yield from descendants(child)
mdict = {id: obj for id, obj in descendants(group_id)
if os.path.splitext(obj['path'])[-1] in extensions}
proj_id, proj = next((k, v) for k, v in objs.items()
if v['isa'] == 'PBXProject')
for target_id in proj['targets']:
target = objs[target_id]
phase_ids = target['buildPhases']
phases = [(phase_id, objs[phase_id]) for phase_id in phase_ids]
phase_id, phase = next((phase_id, phase)
for phase_id, phase in phases
if phase['isa'] == 'PBXSourcesBuildPhase')
fileref_ids = [i
for i, buildfile_id in enumerate(phase['files'])
if objs[buildfile_id]['fileRef'] in mdict]
fileref_ids.sort(reverse=True)
for i in fileref_ids:
del phase['files'][i]
with open(pbxproj + '.new', 'wb') as f:
plistlib.dump(p, f)
os.rename(pbxproj, pbxproj + '.bak')
os.rename(pbxproj + '.new', pbxproj)
I disassembled a function in advapi32.dll (RegOpenKeyEx in particular). I saw two FF 15 calls into the IAT:
call dword [0x77dd13ec]
and
call dword [0x77dd15d4]
Using dumpbin I dumped the imports of the DLL it says the import address table starts at 77DD124C. But 0x77dd13ec doesn't appear in the log. Nor the relative address of 1A0 appears anywhere in it. Apparently the addresses show up there has nothing to do with addresses in the IAT at all.
Is it possible to know which functions these call points link to without writing and running a test program that actually calls the API? What's the method to find it out?
I believe the linker generated these CALL instructions which must have known which function it's linking to.
Sounds like you were getting close.
Using dumpbin will give you a list of modules that the module imports and lists the imported functions from those modules. Against each imported function is a hex number. It seems that you may have mistaken this number for an offset address from the start of the IAT, at which the function address is stored. In actual fact, it's a just a hint number to the Windows loader. When the Windows loader binds the functions, it looks up the function name in the module's export table using a binary search. This number in the dumpbin output is just a hint as to where to start looking to decrease load time.
Now we've cleared that up, how do we determine what 0x77dd13ec was pointing to?
Well it does look like it's pointing into the IAT. The version of advapi32.dll I'm looking at here has an IAT size of 0x668, so an offset into the IAT of 0x1A0 seems reasonable. If you look at the value stored at 0x77dd13ec, it will be an address which points to the function that will be called.
Now you know the address of the function, how do we find out what the function is?
To do this manually, we would look at what module occupies that space in memory. Let's say for example the value at 0x77dd13ec is 0x7D6103E4. I can see from Process Explorer or Visual Studio (or whatever tool you like) that ntdll.dll is loaded at 0x7D600000, and has a size of 0xF0000, so it's pointing into ntdll.dll. I can then subtract the base address of the module to get the relative address (0x7D6103E4 - 0x7D600000 = 0x103E4). I can then look at the export table for ntdll.dll (I prefer depends.exe), and see that ntdll.dll exports a function at 0x103E4 called _allmul - voila!
A much easier way to do this is to attach to the process with a debugger such as OllyDbg and simply go to the address 0x77dd13ec. It does the above for you.
Example output from pointing OllyDbg at advapi32.dll IAT (advapi32.dll IAT begins at 0x7D1E1000 on my system):
7D1E1000 >7D6103E4 ntdll._allmul
7D1E1004 >7D632AB1 ntdll.wcsncmp
7D1E1008 >7D62EA4C ntdll.RtlUnicodeStringToInteger
7D1E100C >7D6220DC ntdll.RtlAllocateHandle
7D1E1010 >7D622131 ntdll.RtlIsValidIndexHandle
7D1E1014 >7D6220A3 ntdll.RtlFreeHandle
7D1E1018 >7D61D2CA ntdll.ZwCompareTokens
7D1E101C >7D623653 ntdll.RtlEnumerateGenericTableWithoutSplaying
7D1E1020 >7D639E88 ntdll.RtlIsGenericTableEmpty
7D1E1024 >7D6295D3 ntdll.RtlExpandEnvironmentStrings_U
7D1E1028 >7D639D8D ntdll.RtlDuplicateUnicodeString
7D1E102C >7D62F24B ntdll.wcsstr
7D1E1030 >7D629EB3 ntdll.RtlCreateUnicodeString
7D1E1034 >7D61CA29 ntdll.ZwQueryInformationProcess
7D1E1038 >7D61C9E1 ntdll.ZwQueryKey
7D1E103C >7D6370C3 ntdll.RtlStringFromGUID
7D1E1040 >7D61CA89 ntdll.ZwCreateKey
7D1E1044 >7D61D0D2 ntdll.ZwSetValueKey
7D1E1048 >7D63A062 ntdll.RtlDeleteElementGenericTable
7D1E104C >7D63C644 ntdll.RtlInsertElementGenericTable
7D1E1050 >7D62F2B5 ntdll.RtlInitializeHandleTable
7D1E1054 >7D62F1FE ntdll.RtlDestroyHandleTable
7D1E1058 >7D62E9A6 ntdll.RtlIntegerToUnicodeString
7D1E105C >7D622B16 ntdll.RtlAppendUnicodeToString
7D1E1060 >7D623046 ntdll.RtlFormatCurrentUserKeyPath
7D1E1064 >7D61D582 ntdll.ZwDeleteKey
7D1E1068 >7D61CC81 ntdll.ZwEnumerateKey
7D1E106C >7D6217C3 ntdll._wcsicmp
7D1E1070 >7D63A633 ntdll.RtlInitializeGenericTable
7D1E1074 >7D62F228 ntdll.RtlNumberGenericTableElements
7D1E1078 >7D639EB6 ntdll.RtlLookupElementGenericTable
7D1E107C >7D67407B ntdll.RtlQueryRegistryValues
7D1E1080 >7D63C67E ntdll.RtlGUIDFromString
7D1E1084 >7D61F825 ntdll.RtlUpcaseUnicodeChar
7D1E1088 >7D61CEAA ntdll.ZwQueryVolumeInformationFile
7D1E108C >7D622201 ntdll.RtlPrefixUnicodeString
7D1E1090 >7D61DCD2 ntdll.ZwQuerySymbolicLinkObject
7D1E1094 >7D61DA1A ntdll.ZwOpenSymbolicLinkObject
7D1E1098 >7D624493 ntdll.RtlDetermineDosPathNameType_U
7D1E109C >7D61C969 ntdll.ZwQueryInformationFile
7D1E10A0 >7D62488B ntdll.RtlGetFullPathName_U
7D1E10A4 >7D638D8D ntdll.RtlMakeSelfRelativeSD
7D1E10A8 >7D640A0B ntdll.mbstowcs
7D1E10AC >7D68E909 ntdll.EtwControlTraceW
7D1E10B0 >7D63EC19 ntdll.wcscmp
7D1E10B4 >7D610557 ntdll._aulldiv
7D1E10B8 >7D61025B ntdll._alldiv
7D1E10BC >7D61C921 ntdll.ZwSetEvent
7D1E10C0 >7D61CE92 ntdll.ZwCreateEvent
7D1E10C4 >7D6899B1 ntdll._vsnprintf
7D1E10C8 >7D6382AF ntdll.RtlDestroyHeap
7D1E10CC >7D62E099 ntdll.RtlCreateHeap
7D1E10D0 >7D61CA11 ntdll.ZwAllocateVirtualMemory
7D1E10D4 >7D678DA8 ntdll.RtlFlushSecureMemoryCache
7D1E10D8 >7D61CAA1 ntdll.ZwFreeVirtualMemory
7D1E10DC >7D68C846 ntdll.EtwControlTraceA
7D1E10E0 >7D68F0C1 ntdll.EtwNotificationRegistrationW
7D1E10E4 >7D61CC69 ntdll.ZwQueryPerformanceCounter
7D1E10E8 >7D61D05A ntdll.ZwWaitForMultipleObjects
7D1E10EC >7D68F25A ntdll.EtwpGetTraceBuffer
7D1E10F0 >7D61D0BA ntdll.ZwPowerInformation
7D1E10F4 >7D62E986 ntdll.EtwpSetHWConfigFunction
7D1E10F8 >7D620C55 ntdll.RtlInitAnsiStringEx
7D1E10FC >7D624DF3 ntdll.RtlUnicodeToMultiByteN
7D1E1100 >7D61D92A ntdll.ZwNotifyChangeKey
7D1E1104 >7D61D072 ntdll.ZwSetInformationObject
7D1E1108 >7D61CD71 ntdll.ZwDuplicateObject
7D1E110C >7D689576 ntdll._itow
7D1E1110 >7D61E032 ntdll.ZwSetInformationKey
7D1E1114 >7D61D5B2 ntdll.ZwDeleteValueKey
7D1E1118 >7D61C999 ntdll.ZwEnumerateValueKey
7D1E111C >7D610BF7 ntdll.memcpy
7D1E1120 >7D61127D ntdll.memset
7D1E1124 >7D63EC51 ntdll.RtlTimeToSecondsSince1970
7D1E1128 >7D62176A ntdll._stricmp
7D1E112C >7D62EE3E ntdll.RtlUnwind
7D1E1130 >7D61CB19 ntdll.ZwQueryVirtualMemory
7D1E1134 >7D627988 ntdll.RtlGetNtProductType
7D1E1138 >7D61D042 ntdll.ZwQuerySystemTime
7D1E113C >7D67BB16 ntdll.RtlRandom
7D1E1140 >7D623334 ntdll.RtlCompareUnicodeString
7D1E1144 >7D61F844 ntdll.RtlInitUnicodeStringEx
7D1E1148 >7D670B47 ntdll.RtlxUnicodeStringToOemSize
7D1E114C >7D6224B9 ntdll.RtlAppendUnicodeStringToString
7D1E1150 >7D61C831 ntdll.ZwWaitForSingleObject
7D1E1154 >7D611A29 ntdll.RtlCompareMemory
7D1E1158 >7D61C879 ntdll.ZwDeviceIoControlFile
7D1E115C >7D622ADD ntdll.wcsrchr
7D1E1160 >7D61C981 ntdll.ZwOpenKey
7D1E1164 >7D61C9F9 ntdll.ZwQueryValueKey
7D1E1168 >7D6225AD ntdll.RtlCopyLuid
7D1E116C >7D6218B0 ntdll.RtlImageNtHeader
7D1E1170 >7D637046 ntdll.swprintf
7D1E1174 >7D6895D1 ntdll._ultow
7D1E1178 >7D6A0098 OFFSET ntdll.NlsMbCodePageTag
7D1E117C >7D670B6C ntdll.RtlxOemStringToUnicodeSize
7D1E1180 >7D6209AC ntdll.RtlMultiByteToUnicodeN
7D1E1184 >7D61EF3A ntdll.strstr
7D1E1188 >7D61EFCF ntdll.strchr
7D1E118C >7D689922 ntdll.tolower
7D1E1190 >7D6288A8 ntdll._wcsnicmp
7D1E1194 >7D621A06 ntdll.wcsncpy
7D1E1198 >7D632433 ntdll.wcstoul
7D1E119C >7D63ED14 ntdll._wcstoui64
7D1E11A0 >7D62F5F9 ntdll.iswctype
7D1E11A4 >7D622D60 ntdll.RtlConvertSidToUnicodeString
7D1E11A8 >7D669ABF ntdll.DbgPrint
7D1E11AC >7D62E8E2 ntdll.RtlOpenCurrentUser
7D1E11B0 >7D61F96E ntdll.RtlFreeUnicodeString
7D1E11B4 >7D629251 ntdll.RtlCreateUnicodeStringFromAsciiz
7D1E11B8 >7D61CCE1 ntdll.ZwQuerySystemInformation
7D1E11BC >7D64098C ntdll.atol
7D1E11C0 >7D610418 ntdll._chkstk
7D1E11C4 >7D61CBF1 ntdll.ZwTerminateProcess
7D1E11C8 >7D66DBDF ntdll.RtlAdjustPrivilege
7D1E11CC >7D61CA71 ntdll.ZwSetInformationProcess
7D1E11D0 >7D621D5E ntdll.wcschr
7D1E11D4 >7D61169A ntdll.strncpy
7D1E11D8 >7D670C42 ntdll.RtlUpcaseUnicodeStringToOemString
7D1E11DC >7D61F18C ntdll.RtlEnterCriticalSection
7D1E11E0 >7D61F1D7 ntdll.RtlLeaveCriticalSection
7D1E11E4 >7D610045 ntdll.RtlInitString
7D1E11E8 >7D62A64E ntdll.RtlIsTextUnicode
7D1E11EC >7D66E883 ntdll.RtlSetSecurityDescriptorRMControl
7D1E11F0 >7D66E821 ntdll.RtlGetSecurityDescriptorRMControl
7D1E11F4 >7D66D905 ntdll.RtlSelfRelativeToAbsoluteSD2
7D1E11F8 >7D61D642 ntdll.ZwFilterToken
7D1E11FC >7D61D74A ntdll.ZwImpersonateAnonymousToken
7D1E1200 >7D610F3D ntdll.memmove
7D1E1204 >7D624F14 ntdll.RtlUnicodeStringToAnsiString
7D1E1208 >7D620CB7 ntdll.RtlUnicodeToMultiByteSize
7D1E120C >7D622FE1 ntdll.RtlCopyUnicodeString
7D1E1210 >7D61C909 ntdll.ZwSetInformationThread
7D1E1214 >7D66E018 ntdll.RtlImpersonateSelf
7D1E1218 >7D61CD29 ntdll.ZwFsControlFile
7D1E121C >7D61DCA2 ntdll.ZwQuerySecurityObject
7D1E1220 >7D639057 ntdll.RtlOemStringToUnicodeString
7D1E1224 >7D624938 ntdll.RtlDosPathNameToRelativeNtPathName_U
7D1E1228 >7D61CC99 ntdll.ZwOpenFile
7D1E122C >7D624473 ntdll.RtlReleaseRelativeName
7D1E1230 >7D61E0F2 ntdll.ZwSetSecurityObject
7D1E1234 >7D61C939 ntdll.ZwClose
7D1E1238 >7D66D984 ntdll.RtlSelfRelativeToAbsoluteSD
7D1E123C >7D638D66 ntdll.RtlAbsoluteToSelfRelativeSD
7D1E1240 >7D63DBA5 ntdll.RtlDeleteSecurityObject
7D1E1244 >7D660F20 ntdll.RtlQuerySecurityObject
7D1E1248 >7D660EF7 ntdll.RtlSetSecurityObjectEx
7D1E124C >7D660ECF ntdll.RtlSetSecurityObject
7D1E1250 >7D660E95 ntdll.RtlNewSecurityObjectWithMultipleInheritance
7D1E1254 >7D63D435 ntdll.RtlNewSecurityObjectEx
7D1E1258 >7D661730 ntdll.RtlConvertToAutoInheritSecurityObject
7D1E125C >7D660EA5 ntdll.RtlNewSecurityObject
7D1E1260 >7D6333BA ntdll.RtlGetGroupSecurityDescriptor
7D1E1264 >7D637A22 ntdll.RtlSetGroupSecurityDescriptor
7D1E1268 >7D6301B1 ntdll.RtlGetOwnerSecurityDescriptor
7D1E126C >7D6379D8 ntdll.RtlSetOwnerSecurityDescriptor
7D1E1270 >7D633385 ntdll.RtlGetSaclSecurityDescriptor
7D1E1274 >7D66DEBE ntdll.RtlSetSaclSecurityDescriptor
7D1E1278 >7D62B269 ntdll.RtlGetDaclSecurityDescriptor
7D1E127C >7D6375FF ntdll.RtlSetDaclSecurityDescriptor
7D1E1280 >7D66DE7F ntdll.RtlSetControlSecurityDescriptor
7D1E1284 >7D624CFD ntdll.RtlGetControlSecurityDescriptor
7D1E1288 >7D6332F1 ntdll.RtlLengthSecurityDescriptor
7D1E128C >7D633236 ntdll.RtlValidSecurityDescriptor
7D1E1290 >7D6375D1 ntdll.RtlCreateSecurityDescriptor
7D1E1294 >7D637515 ntdll.RtlFirstFreeAce
7D1E1298 >7D670405 ntdll.RtlAddAuditAccessObjectAce
7D1E129C >7D6703B7 ntdll.RtlAddAccessDeniedObjectAce
7D1E12A0 >7D67036A ntdll.RtlAddAccessAllowedObjectAce
7D1E12A4 >7D670332 ntdll.RtlAddAuditAccessAceEx
7D1E12A8 >7D6702FB ntdll.RtlAddAuditAccessAce
7D1E12AC >7D6702D7 ntdll.RtlAddAccessDeniedAceEx
7D1E12B0 >7D6702B4 ntdll.RtlAddAccessDeniedAce
7D1E12B4 >7D6390DF ntdll.RtlAddAccessAllowedAceEx
7D1E12B8 >7D637785 ntdll.RtlAddAccessAllowedAce
7D1E12BC >7D6301F3 ntdll.RtlGetAce
7D1E12C0 >7D64283B ntdll.RtlDeleteAce
7D1E12C4 >7D66FF8E ntdll.RtlAddAce
7D1E12C8 >7D66FE7A ntdll.RtlSetInformationAcl
7D1E12CC >7D66FF02 ntdll.RtlQueryInformationAcl
7D1E12D0 >7D637733 ntdll.RtlCreateAcl
7D1E12D4 >7D637550 ntdll.RtlValidAcl
7D1E12D8 >7D63D23D ntdll.RtlMapGenericMask
7D1E12DC >7D66DF40 ntdll.RtlAreAnyAccessesGranted
7D1E12E0 >7D66DF24 ntdll.RtlAreAllAccessesGranted
7D1E12E4 >7D628858 ntdll.RtlCopySid
7D1E12E8 >7D62888C ntdll.RtlLengthSid
7D1E12EC >7D62970C ntdll.RtlSubAuthorityCountSid
7D1E12F0 >7D621862 ntdll.RtlSubAuthoritySid
7D1E12F4 >7D66DC96 ntdll.RtlIdentifierAuthoritySid
7D1E12F8 >7D637A6C ntdll.RtlAllocateAndInitializeSid
7D1E12FC >7D6380CB ntdll.RtlFreeSid
7D1E1300 >7D621830 ntdll.RtlInitializeSid
7D1E1304 >7D6377A8 ntdll.RtlLengthRequiredSid
7D1E1308 >7D63D1ED ntdll.RtlEqualPrefixSid
7D1E130C >7D62187A ntdll.RtlEqualSid
7D1E1310 >7D622B95 ntdll.RtlValidSid
7D1E1314 >7D61DAAA ntdll.ZwPrivilegedServiceAuditAlarm
7D1E1318 >7D61D59A ntdll.ZwDeleteObjectAuditAlarm
7D1E131C >7D61CD59 ntdll.ZwCloseObjectAuditAlarm
7D1E1320 >7D61DA92 ntdll.ZwPrivilegeObjectAuditAlarm
7D1E1324 >7D61D9D2 ntdll.ZwOpenObjectAuditAlarm
7D1E1328 >7D61D192 ntdll.ZwAccessCheckByTypeResultListAndAuditAlarmByHandle
7D1E132C >7D61D17A ntdll.ZwAccessCheckByTypeResultListAndAuditAlarm
7D1E1330 >7D61D02A ntdll.ZwAccessCheckByTypeAndAuditAlarm
7D1E1334 >7D61CBA9 ntdll.ZwAccessCheckAndAuditAlarm
7D1E1338 >7D61DA7A ntdll.ZwPrivilegeCheck
7D1E133C >7D61D1DA ntdll.ZwAdjustGroupsToken
7D1E1340 >7D61CDE9 ntdll.ZwAdjustPrivilegesToken
7D1E1344 >7D61E04A ntdll.ZwSetInformationToken
7D1E1348 >7D61CAE9 ntdll.ZwQueryInformationToken
7D1E134C >7D61CB31 ntdll.ZwOpenThreadToken
7D1E1350 >7D61D9EA ntdll.ZwOpenProcessToken
7D1E1354 >7D61D162 ntdll.ZwAccessCheckByTypeResultList
7D1E1358 >7D61D14A ntdll.ZwAccessCheckByType
7D1E135C >7D61D132 ntdll.ZwAccessCheck
7D1E1360 >7D61D222 ntdll.ZwAllocateLocallyUniqueId
7D1E1364 >7D61CE01 ntdll.ZwDuplicateToken
7D1E1368 >7D6331AD ntdll._vsnwprintf
7D1E136C >7D61007D ntdll.RtlInitAnsiString
7D1E1370 >7D620B10 ntdll.RtlAnsiStringToUnicodeString
7D1E1374 >7D61F96E ntdll.RtlFreeUnicodeString
7D1E1378 >7D6100B5 ntdll.RtlInitUnicodeString
7D1E137C >7D624821 ntdll.RtlDosPathNameToNtPathName_U
7D1E1380 >7D61F4CB ntdll.RtlFreeHeap
7D1E1384 >7D61F7E6 ntdll.wcslen
7D1E1388 >7D61F686 ntdll.RtlAllocateHeap
7D1E138C >7D622AB9 ntdll.wcscpy
7D1E1390 >7D628909 ntdll.wcscat
7D1E1394 >7D6202F5 ntdll.RtlNtStatusToDosError
7D1E1398 >7D621199 ntdll.RtlDeleteCriticalSection
7D1E139C >7D68A275 ntdll.wcstombs
7D1E13A0 >7D621CAF ntdll.RtlInitializeCriticalSection
7D1E13A4 >7D621CC8 ntdll.RtlEqualUnicodeString
7D1E13A8 >7D620341 ntdll.RtlNtStatusToDosErrorNoTeb
7D1E13AC >7D61D672 ntdll.ZwFlushKey
7D1E13B0 >7D66E6D8 ntdll.RtlValidRelativeSecurityDescriptor
7D1E13B4 >7D61D7F2 ntdll.ZwLoadKey
7D1E13B8 >7D61E2EA ntdll.ZwUnloadKey
7D1E13BC >7D61DDC2 ntdll.ZwReplaceKey
7D1E13C0 >7D61D942 ntdll.ZwNotifyChangeMultipleKeys
7D1E13C4 >7D61DC12 ntdll.ZwQueryMultipleValueKey
7D1E13C8 >7D61DE6A ntdll.ZwRestoreKey
7D1E13CC >7D61DE9A ntdll.ZwSaveKey
7D1E13D0 >7D61DECA ntdll.ZwSaveMergedKeys
7D1E13D4 >7D61CFCA ntdll.ZwCreateFile
7D1E13D8 >7D61DEB2 ntdll.ZwSaveKeyEx
7D1E13DC >7D68D071 ntdll.EtwTraceEvent
7D1E13E0 >7D68E3B1 ntdll.EtwStartTraceW
7D1E13E4 >7D68F015 ntdll.EtwQueryTraceW
7D1E13E8 >7D627827 ntdll.RtlGetVersion
7D1E13EC >7D61CB49 ntdll.ZwQueryInformationThread
7D1E13F0 >7D61C861 ntdll.ZwReadFile
7D1E13F4 >7D61C891 ntdll.ZwWriteFile
7D1E13F8 >7D610418 ntdll._chkstk
7D1E13FC >7D62368B ntdll.RtlReAllocateHeap
7D1E1400 00000000
7D1E1404 >7D52A507 kernel32.OutputDebugStringW
7D1E1408 >7D4D9099 kernel32.LocalFree
7D1E140C >7D4D90FD kernel32.LocalAlloc
7D1E1410 >7D4E1F1C kernel32.LocalReAlloc
7D1E1414 >7D4D93AD kernel32.WideCharToMultiByte
7D1E1418 >7D4D8F75 kernel32.lstrlenW
7D1E141C >7D4D920B kernel32.MultiByteToWideChar
7D1E1420 >7D4E0DF9 kernel32.lstrlenA
7D1E1424 >7D4E3B5F kernel32.AreFileApisANSI
7D1E1428 >7D4D9179 kernel32.IsBadWritePtr
7D1E142C >7D4D8E1B kernel32.CloseHandle
7D1E1430 >7D61F4BC ntdll.RtlGetLastWin32Error
7D1E1434 >7D4DAC0B kernel32.GetProcAddress
7D1E1438 >7D4D0DC0 kernel32.LoadLibraryA
7D1E143C >7D4E456B kernel32.GetComputerNameW
7D1E1440 >7D4E2669 kernel32.OpenProcess
7D1E1444 >7D4E22E6 kernel32.ResumeThread
7D1E1448 >7D4D0845 kernel32.ReadFile
7D1E144C >7D4DA92D kernel32.WriteFile
7D1E1450 >7D4D8FB9 kernel32.GetCurrentProcessId
7D1E1454 >7D530BCD kernel32.WaitNamedPipeW
7D1E1458 >7D4D99C0 kernel32.CreateFileW
7D1E145C >7D4E257D kernel32.lstrcpynW
7D1E1460 >7D50629E kernel32.CopyFileW
7D1E1464 >7D4DE779 kernel32.FindFirstFileExW
7D1E1468 >7D4DC7A4 kernel32.FindNextFileW
7D1E146C >7D4DA41F kernel32.SetErrorMode
7D1E1470 >7D4D0B09 kernel32.LoadLibraryExW
7D1E1474 >7D4E24D7 kernel32.lstrcpyW
7D1E1478 >7D4E26C7 kernel32.GetFileTime
7D1E147C >7D4D0F40 kernel32.GetSystemTime
7D1E1480 >7D4DF884 kernel32.GetModuleFileNameW
7D1E1484 >7D504CEC kernel32.GetPrivateProfileIntW
7D1E1488 >7D4E28E9 kernel32.GetSystemWindowsDirectoryW
7D1E148C >7D4DDCD3 kernel32.GetUserDefaultUILanguage
7D1E1490 >7D4E2288 kernel32.RaiseException
7D1E1494 >7D4D1314 kernel32.ReadProcessMemory
7D1E1498 >7D4F501C kernel32.GetProfileIntA
7D1E149C >7D501563 kernel32.GetProfileStringA
7D1E14A0 >7D4F7CF0 kernel32.GetComputerNameA
7D1E14A4 >7D4DC623 kernel32.CreateMutexW
7D1E14A8 >7D4F8CCE kernel32.GetComputerNameExW
7D1E14AC >7D4DF56F kernel32.CreateThread
7D1E14B0 >7D504E16 kernel32.SetNamedPipeHandleState
7D1E14B4 >7D4E7B6E kernel32.IsWow64Process
7D1E14B8 >7D4E3C55 kernel32.OpenEventW
7D1E14BC >7D4EA383 kernel32.GetModuleHandleExW
7D1E14C0 >7D4E2A39 kernel32.GetSystemDirectoryW
7D1E14C4 >7D53182C kernel32.GetLogicalDriveStringsW
7D1E14C8 >7D4D961D kernel32.GetDriveTypeW
7D1E14CC >7D4F794C kernel32.GetDiskFreeSpaceW
7D1E14D0 >7D4F7A90 kernel32.GetDiskFreeSpaceExW
7D1E14D4 >7D4E099E kernel32.GetVolumeInformationW
7D1E14D8 >7D4EA660 kernel32.GlobalMemoryStatusEx
7D1E14DC >7D4E07D2 kernel32.GetSystemInfo
7D1E14E0 >7D54720F kernel32.EnumUILanguagesW
7D1E14E4 >7D4E2942 kernel32.GetWindowsDirectoryW
7D1E14E8 >7D4DEBA3 kernel32.FindFirstFileW
7D1E14EC >7D4DEA39 kernel32.FindClose
7D1E14F0 >7D4D91E9 kernel32.ResetEvent
7D1E14F4 >7D4D8EBE kernel32.SetEvent
7D1E14F8 >7D4D0A5C kernel32.CreateFileA
7D1E14FC >7D52CA61 kernel32.GetOverlappedResult
7D1E1500 >7D4F9D53 kernel32.GetVolumePathNameW
7D1E1504 >7D4E23C1 kernel32.FindResourceExW
7D1E1508 >7D4D1704 kernel32.ReleaseMutex
7D1E150C >7D4DA77B kernel32.CompareFileTime
7D1E1510 >7D4DCBAB kernel32.OpenMutexW
7D1E1514 >7D4D8BFB kernel32.WaitForSingleObject
7D1E1518 >7D4E408F kernel32.GetLongPathNameW
7D1E151C >7D4DA700 kernel32.GetFileSizeEx
7D1E1520 >7D4DA63A kernel32.CreateFileMappingW
7D1E1524 >7D4DFC37 kernel32.GetModuleHandleW
7D1E1528 >7D4E0974 kernel32.FormatMessageW
7D1E152C >7D4E1C74 kernel32.GetLocalTime
7D1E1530 >7D61F4A2 ntdll.RtlSetLastWin32Error
7D1E1534 >7D4DC8F9 kernel32.DeleteFileW
7D1E1538 >7D4E3768 kernel32.MoveFileW
7D1E153C >7D4E1471 kernel32.ExpandEnvironmentStringsW
7D1E1540 >7D4D14E0 kernel32.Sleep
7D1E1544 >7D4DA340 kernel32.lstrcmpW
7D1E1548 >7D4E7BAF kernel32.GetCommandLineW
7D1E154C >7D4E0EA8 kernel32.lstrcmpiW
7D1E1550 >7D621199 ntdll.RtlDeleteCriticalSection
7D1E1554 >7D4D067D kernel32.DeviceIoControl
7D1E1558 >7D4DFEC0 kernel32.GetVersionExA
7D1E155C >7D4D8834 kernel32.InterlockedExchange
7D1E1560 >7D4DA498 kernel32.CreateEventW
7D1E1564 >7D51249B kernel32.SetUnhandledExceptionFilter
7D1E1568 >7D535509 kernel32.UnhandledExceptionFilter
7D1E156C >7D4D1004 kernel32.TerminateProcess
7D1E1570 >7D4D0FBA kernel32.GetSystemTimeAsFileTime
7D1E1574 >7D4DC6E5 kernel32.QueryPerformanceCounter
7D1E1578 >7D4D8848 kernel32.InterlockedCompareExchange
7D1E157C >7D54D025 kernel32.DelayLoadFailureHook
7D1E1580 >7D4DD79D kernel32.GetCurrentProcess
7D1E1584 >7D53243F kernel32.GetPriorityClass
7D1E1588 >7D4D9586 kernel32.GetFileAttributesW
7D1E158C >7D4DA3DB kernel32.GetFullPathNameW
7D1E1590 >7D4D8D8B kernel32.GetCurrentThreadId
7D1E1594 >7D4D168E kernel32.GetTickCount
7D1E1598 >7D4D0E7C kernel32.SleepEx
7D1E159C >7D61F18C ntdll.RtlEnterCriticalSection
7D1E15A0 >7D4E2496 kernel32.LoadLibraryW
7D1E15A4 >7D61F1D7 ntdll.RtlLeaveCriticalSection
7D1E15A8 >7D4E2511 kernel32.FreeLibrary
7D1E15AC >7D4D8E09 kernel32.GetProcessHeap
7D1E15B0 >7D61F686 ntdll.RtlAllocateHeap
7D1E15B4 >7D61F4CB ntdll.RtlFreeHeap
7D1E15B8 >7D502818 kernel32.ExpandEnvironmentStringsA
7D1E15BC >7D4F62BD kernel32.OpenFile
7D1E15C0 >7D4DA73F kernel32.GetFileSize
7D1E15C4 >7D4E38B9 kernel32._lclose
7D1E15C8 >7D4E014E kernel32.SearchPathW
7D1E15CC >7D4E5F72 kernel32.GetFileAttributesExW
7D1E15D0 >7D4DA517 kernel32.CreateFileMappingA
7D1E15D4 >7D4DA5FE kernel32.MapViewOfFile
7D1E15D8 >7D4DA7BB kernel32.SetFilePointer
7D1E15DC >7D4DA5D2 kernel32.UnmapViewOfFile
7D1E15E0 >7D4E16E9 kernel32.FindResourceA
7D1E15E4 >7D4E0D9E kernel32.LoadResource
7D1E15E8 >7D4E1D19 kernel32.SizeofResource
7D1E15EC >7D4D8820 kernel32.InterlockedDecrement
7D1E15F0 >7D4D880C kernel32.InterlockedIncrement
7D1E15F4 >7D4DAC73 kernel32.GetModuleHandleA
7D1E15F8 >7D4EB4CA kernel32.CreateProcessInternalA
7D1E15FC >7D4D8DAC kernel32.GetCurrentThread
7D1E1600 >7D4ECE40 kernel32.CreateProcessInternalW
7D1E1604 00000000
7D1E1608 >7DA503A2 RPCRT4.UuidFromStringW
7D1E160C >7DA39929 RPCRT4.RpcStringFreeW
7D1E1610 >7DA79D70 RPCRT4.UuidToStringW
7D1E1614 >7DA44925 RPCRT4.RpcRaiseException
7D1E1618 >7DA722E5 RPCRT4.RpcBindingSetAuthInfoExA
7D1E161C >7DA35D48 RPCRT4.RpcBindingFree
7D1E1620 >7DA39EB4 RPCRT4.RpcBindingFromStringBindingW
7D1E1624 >7DA39CBD RPCRT4.RpcStringBindingComposeW
7D1E1628 >7DA43060 RPCRT4.RpcBindingSetAuthInfoExW
7D1E162C >7DAC0005 RPCRT4.NdrClientCall2
7D1E1630 >7DA7DE50 RPCRT4.RpcStringBindingParseW
7D1E1634 >7DA6F145 RPCRT4.I_RpcMapWin32Status
7D1E1638 >7DA6B28D RPCRT4.RpcBindingToStringBindingW
7D1E163C >7DA390D8 RPCRT4.NDRCContextBinding
7D1E1640 >7DA660AD RPCRT4.RpcRevertToSelf
7D1E1644 >7DA4CDF9 RPCRT4.RpcImpersonateClient
7D1E1648 >7DA660BA RPCRT4.I_RpcBindingIsClientLocal
7D1E164C >7DA44F23 RPCRT4.I_RpcExceptionFilter
7D1E1650 >7DA4285B RPCRT4.RpcSsDestroyClientContext
7D1E1654 >7DA66C54 RPCRT4.RpcBindingSetAuthInfoW
7D1E1658 >7DA726FB RPCRT4.RpcBindingSetAuthInfoA
7D1E165C >7DA66880 RPCRT4.RpcEpResolveBinding
7D1E1660 >7DA667AB RPCRT4.I_RpcSNCHOption
7D1E1664 00000000
I know it's been a few months since you posted the question, but I hope this helps you still, or anyone else searching this. This kind of information is hard to come by, I know!
I am trying to connect a Google Docs extension to a MySQL database via JDBC Service. The MySQL database is running on a shared server that requires using CPanel. CPanel only lets me add one whitelist rule at a time, and I can only use the % wildcard character (which matches to 0 or more of any type of character). I wrote a script to generate rules in this format from the IP address ranges, but there are more than 300 of them. I'm trying to find an easier way to do this.
Is there a domain name for the Google JDBC Service that I can whitelist instead of the IP address ranges? Does CPanel have a more efficient whitelisting mechanism that I'm not aware of? Is there a program that could automate filling out CPanel's webform with my whitelist?
Here is the CPanel-formatted whitelist I generated, in case someone with the same problem finds my question.
64.18.0.%
64.18.1.%
64.18.2.%
64.18.3.%
64.18.4.%
64.18.5.%
64.18.6.%
64.18.7.%
64.18.8.%
64.18.9.%
64.18.10.%
64.18.11.%
64.18.12.%
64.18.13.%
64.18.14.%
64.233.160.%
64.233.161.%
64.233.162.%
64.233.163.%
64.233.164.%
64.233.165.%
64.233.166.%
64.233.167.%
64.233.168.%
64.233.169.%
64.233.170.%
64.233.171.%
64.233.172.%
64.233.173.%
64.233.174.%
64.233.175.%
64.233.176.%
64.233.177.%
64.233.178.%
64.233.179.%
64.233.180.%
64.233.181.%
64.233.182.%
64.233.183.%
64.233.184.%
64.233.185.%
64.233.186.%
64.233.187.%
64.233.188.%
64.233.189.%
64.233.190.%
66.102.0.%
66.102.1.%
66.102.2.%
66.102.3.%
66.102.4.%
66.102.5.%
66.102.6.%
66.102.7.%
66.102.8.%
66.102.9.%
66.102.10.%
66.102.11.%
66.102.12.%
66.102.13.%
66.102.14.%
66.249.80.%
66.249.81.%
66.249.82.%
66.249.83.%
66.249.84.%
66.249.85.%
66.249.86.%
66.249.87.%
66.249.88.%
66.249.89.%
66.249.90.%
66.249.91.%
66.249.92.%
66.249.93.%
66.249.94.%
72.14.192.%
72.14.193.%
72.14.194.%
72.14.195.%
72.14.196.%
72.14.197.%
72.14.198.%
72.14.199.%
72.14.200.%
72.14.201.%
72.14.202.%
72.14.203.%
72.14.204.%
72.14.205.%
72.14.206.%
72.14.207.%
72.14.208.%
72.14.209.%
72.14.210.%
72.14.211.%
72.14.212.%
72.14.213.%
72.14.214.%
72.14.215.%
72.14.216.%
72.14.217.%
72.14.218.%
72.14.219.%
72.14.220.%
72.14.221.%
72.14.222.%
72.14.223.%
72.14.224.%
72.14.225.%
72.14.226.%
72.14.227.%
72.14.228.%
72.14.229.%
72.14.230.%
72.14.231.%
72.14.232.%
72.14.233.%
72.14.234.%
72.14.235.%
72.14.236.%
72.14.237.%
72.14.238.%
72.14.239.%
72.14.240.%
72.14.241.%
72.14.242.%
72.14.243.%
72.14.244.%
72.14.245.%
72.14.246.%
72.14.247.%
72.14.248.%
72.14.249.%
72.14.250.%
72.14.251.%
72.14.252.%
72.14.253.%
72.14.254.%
74.125.%
173.194.%
207.126.144.%
207.126.145.%
207.126.146.%
207.126.147.%
207.126.148.%
207.126.149.%
207.126.150.%
207.126.151.%
207.126.152.%
207.126.153.%
207.126.154.%
207.126.155.%
207.126.156.%
207.126.157.%
207.126.158.%
209.85.128.%
209.85.129.%
209.85.130.%
209.85.131.%
209.85.132.%
209.85.133.%
209.85.134.%
209.85.135.%
209.85.136.%
209.85.137.%
209.85.138.%
209.85.139.%
209.85.140.%
209.85.141.%
209.85.142.%
209.85.143.%
209.85.144.%
209.85.145.%
209.85.146.%
209.85.147.%
209.85.148.%
209.85.149.%
209.85.150.%
209.85.151.%
209.85.152.%
209.85.153.%
209.85.154.%
209.85.155.%
209.85.156.%
209.85.157.%
209.85.158.%
209.85.159.%
209.85.160.%
209.85.161.%
209.85.162.%
209.85.163.%
209.85.164.%
209.85.165.%
209.85.166.%
209.85.167.%
209.85.168.%
209.85.169.%
209.85.170.%
209.85.171.%
209.85.172.%
209.85.173.%
209.85.174.%
209.85.175.%
209.85.176.%
209.85.177.%
209.85.178.%
209.85.179.%
209.85.180.%
209.85.181.%
209.85.182.%
209.85.183.%
209.85.184.%
209.85.185.%
209.85.186.%
209.85.187.%
209.85.188.%
209.85.189.%
209.85.190.%
209.85.191.%
209.85.192.%
209.85.193.%
209.85.194.%
209.85.195.%
209.85.196.%
209.85.197.%
209.85.198.%
209.85.199.%
209.85.200.%
209.85.201.%
209.85.202.%
209.85.203.%
209.85.204.%
209.85.205.%
209.85.206.%
209.85.207.%
209.85.208.%
209.85.209.%
209.85.210.%
209.85.211.%
209.85.212.%
209.85.213.%
209.85.214.%
209.85.215.%
209.85.216.%
209.85.217.%
209.85.218.%
209.85.219.%
209.85.220.%
209.85.221.%
209.85.222.%
209.85.223.%
209.85.224.%
209.85.225.%
209.85.226.%
209.85.227.%
209.85.228.%
209.85.229.%
209.85.230.%
209.85.231.%
209.85.232.%
209.85.233.%
209.85.234.%
209.85.235.%
209.85.236.%
209.85.237.%
209.85.238.%
209.85.239.%
209.85.240.%
209.85.241.%
209.85.242.%
209.85.243.%
209.85.244.%
209.85.245.%
209.85.246.%
209.85.247.%
209.85.248.%
209.85.249.%
209.85.250.%
209.85.251.%
209.85.252.%
209.85.253.%
209.85.254.%
216.239.32.%
216.239.33.%
216.239.34.%
216.239.35.%
216.239.36.%
216.239.37.%
216.239.38.%
216.239.39.%
216.239.40.%
216.239.41.%
216.239.42.%
216.239.43.%
216.239.44.%
216.239.45.%
216.239.46.%
216.239.47.%
216.239.48.%
216.239.49.%
216.239.50.%
216.239.51.%
216.239.52.%
216.239.53.%
216.239.54.%
216.239.55.%
216.239.56.%
216.239.57.%
216.239.58.%
216.239.59.%
216.239.60.%
216.239.61.%
216.239.62.%
Oday,
Your suggestion won't work as the IP ranges aren't all inclusive. Here is the list that Google says to whitelist.
As an example...how do I white list 64.18.0.x to 64.18.15.x
I should have looked harder in stackoverflow. For others that stumble upon this post, here is the answer that I found at
Whitelist IP addresses ranges using cPanel
64.18.0-15.%
64.233.160-191.%
64.102.0-15.%
66.249.80-95.%
72.14.192-255.%
74.125.%
173.194.%
207.126.144-159.%
209.85.128-255.%
216.239.32-63.%
This is long overdue, but the easiest solution is to use the % wildcard like this to make it easier:
64.18.%.%
64.233.%.%
66.102.%.%
...etc