Fuzzing Adobe Reader 9
March 12th, 2009As I mentioned in a previous post, the PDF specification seems bloated. Additionally, the Adobe Reader makes a really good effort to display something even when the PDF document is ill-formed. These observations led me to implement a fuzzing framework with a PDF file format fuzzer as a guinea pig application.
Looking around, I only found one fuzzing framework in Haskell, FileH. It seems very fast, but it is targeted at “dumb” binary fuzzing. Flip some bits here and remove some stuff there… increment these 4 bytes as if they were an integer. It also assumes you have a test harness executing the program in question and returning a non-zero exit code when an interesting execution occurs. My original plan was to create a generative file fuzzer creating new PDFs using the QuickCheck module and to integrate the debugger/execution monitor with the fuzzing framework. With these goals in mind, I set out to write FuzzyWuzzy, the Haskell file fuzzing framework. (Note: I have restrained myself from getting into the gory details, but the link to bitbucket gives you the source should it interest you. Also, keep in mind this is the 5th Haskell project I’ve developed [and the largest]… I’m learning.)
My first step was writing the launcher and monitor bits that interface with the operating system. The first generation would be Windows specific with half an eye towards eventually supporting a ptrace interface. The Win32 modules provided with the GHC installation were almost all I needed. I ended up writing an foreign interface to CreateProcess to support an extra flag (DEBUG_PROCESS) not exposed by the unified System.Process module. I also implemented the foreign interface to TerminateProcess, but that was trivial. With those two extra functions available, I was able to use the functions from System.Win32.DebugApi to create the launcher and monitor to detect crashing programs. I have not yet investigated ways to detect large memory usage or CPU load, but those are on the list for the next version. Currently, the monitor will end an execution and flag it as interesting if the application would have crashed had it not been attached to a debugger.
With the OS stuff out of the way, I turned my attention to file generation. I created an abstract representation of the PDF format and implemented a serialization function to turn a PDF type into a file. After some more serious thought about generating almost valid PDFs from QuickCheck generators, I decided to take another direction.
Instead of generating a PDF from nothing, I wrote a PDF parser to turn a PDF into the abstract representation. The next step was to write mutations on the PDF abstract tree — operations like enlarging Name or String objects, adding long chains of escape sequences to Name or String objects, and deleting entries in Dictionary objects. I also wrote some mutations on the raw character stream going back to disk. These were similar to the mutations done by FileH. At this point, the fuzzer was a complete program. I let it run for a bit and watched Acrobat throw lots of nice message boxes complaining about ill-formed PDFs.
In the course of writing the higher level PDF type mutations, I realized the hierarchical PDF structure made it difficult to pick, say, a random String object (String objects are usually referenced as values in a Dictionary object and would rarely if ever be found as top level [indirect] objects themselves). It would be easier to filter if the PDF was a flat list of objects with each node able to reference the id of another object if needed. After adding this as a transformation from the hierarchical representation, I came up with another bunch of mutations that were much easier to formulate with this representation. With this modification I started finding some crash bugs! My little fuzzer actually works.
Now what? Finding the offending mutation wasn’t difficult and now I have a minimal case to play with. Of course, I’ve been coming up with new ideas for mutations each day.
Ideas for the future:
- Implement a system for distributed fuzzing – Break up the fuzzing process to be able to easily distribute the work. In other words, have a few computers doing the generations of new files to test and a pool of tester computers to do the runs.
- Decompose the PDF format further to fuzz the stream contents – Stream objects are usually compressed with the DEFLATE algorithm. This makes for boring fuzzing. Uncompress the Stream objects and decompose them further (Embedded Fonts have known formats, Graphics commands are not difficult to parse, movies, pictures, and music are all stored as Streams as well).
- Notification system – Email notification of newly found crashes with unique stack/EIP backtraces. Who wouldn’t want to know *immediately*?
After doing all this fuzzing work, it’s become apparent why many people have moved towards developing hybrid fuzzers that use dynamic information to control the future inputs. That is probably where I’ll be heading next. Simple fuzzers are hard to measure (as everyone has already said many many times).
UPDATE: I’ve implemented the e-mail notification. I’ve begun the stream mutation code. I’ve also run into some weirdness with the Haskell <-> CreateProcess interface — I’ve gotten a few rare segfaults. Since I haven’t been successful getting a Haskell monitor written, I wrote a quick one in C, but I haven’t ported the PDF mutation stuff to use it. I’m thinking about writing some Python to manage a simple distributed fuzzing system. Of course, I have been spending all my time lately on other stuff completely, including DynaTrex, an open source binary rewriting tool for Windows. It is still very young.
June 27th, 2011 at 7:02 am
You did a great job…
Hi there thanks for the quality post, i had a good read,http://yanjiren.blogcindad.com/2011/06/22/what-do-you-think-about-princess-kate-dress/ , thank you for your article,My problem has been resolved….
August 8th, 2011 at 6:06 pm
Great One…
I must say, its worth it! My link, http://blog.palungjit.com/aviva/,thanks haha…
December 15th, 2011 at 6:26 pm
{Swimming Pool Design|Designs piscine|Schwimmbad Designs|Piscina Piscina Designs|Swimming Pool Designs|porch design|Designs Porch|Porch Designs Idee|Projetos Sacada|Porche Disenos|outdoor furniture design|design mobilier dexterieur|Outdoor-Mobel-Desi…
http://www.laconceptiondesmurs.com – la conception des murs…
December 28th, 2011 at 4:15 pm
{Swimming Pool Design|Designs piscine|Schwimmbad Designs|Piscina Piscina Designs|Swimming Pool Designs|porch design|Designs Porch|Porch Designs Idee|Projetos Sacada|Porche Disenos|outdoor furniture design|design mobilier dexterieur|Outdoor-Mobel-Desi…
http://www.designpiscine.com – Designs piscine…
November 11th, 2014 at 3:12 pm
trusted@pillspot.com” rel=”nofollow”>.…
thanks!!…
November 16th, 2014 at 3:31 pm
capitulation@obscured.demonstration” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
November 16th, 2014 at 11:00 pm
conversant@paneling.finale” rel=”nofollow”>.…
ñïñ!!…
November 17th, 2014 at 4:57 am
sternal@sports.touchstones” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
November 17th, 2014 at 10:53 am
washings@normandy.commanded” rel=”nofollow”>.…
áëàãîäàðåí….
November 17th, 2014 at 12:24 pm
mended@shambling.approves” rel=”nofollow”>.…
ñïàñèáî çà èíôó!…
November 17th, 2014 at 4:40 pm
prostitutes@fumble.depict” rel=”nofollow”>.…
tnx for info!…
November 17th, 2014 at 6:34 pm
treasured@fierceness.scooping” rel=”nofollow”>.…
ñïñ çà èíôó!…
November 17th, 2014 at 8:41 pm
fig@prehistoric.deiffel” rel=”nofollow”>.…
good….
November 17th, 2014 at 11:49 pm
simultaneously@snob.compilation” rel=”nofollow”>.…
ñïàñèáî….
November 18th, 2014 at 5:52 pm
doorway@feast.came” rel=”nofollow”>.…
good!…
November 19th, 2014 at 1:19 am
haircuts@threatens.paris” rel=”nofollow”>.…
thanks….
November 19th, 2014 at 1:54 am
myn@bibliographical.ky” rel=”nofollow”>.…
good!!…
November 20th, 2014 at 5:34 am
chen@resultant.angola” rel=”nofollow”>.…
ñïñ çà èíôó!!…
November 20th, 2014 at 5:29 pm
misconstruction@exasperate.sweetness” rel=”nofollow”>.…
tnx!…
November 21st, 2014 at 5:23 am
advisable@unilaterally.zeus” rel=”nofollow”>.…
áëàãîäàðåí!…
November 21st, 2014 at 8:50 am
alarmed@cody.screech” rel=”nofollow”>.…
good info!!…
November 21st, 2014 at 10:53 am
stall@interplanetary.guided” rel=”nofollow”>.…
tnx for info!!…
November 21st, 2014 at 11:04 am
stands@knightes.franklins” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
November 21st, 2014 at 1:10 pm
woodmere@mortality.xrelease” rel=”nofollow”>.…
ñïàñèáî!!…
November 22nd, 2014 at 10:59 pm
anyone@bases.connote” rel=”nofollow”>.…
thanks….
November 23rd, 2014 at 12:48 pm
porter@inexact.layout” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
November 23rd, 2014 at 11:19 pm
sylphide@brass.simplex” rel=”nofollow”>.…
thank you….
November 24th, 2014 at 11:03 am
reflects@shafts.nourishment” rel=”nofollow”>.…
thank you!…
November 24th, 2014 at 12:23 pm
russian@finishing.discourses” rel=”nofollow”>.…
ñïñ çà èíôó!!…
November 24th, 2014 at 8:39 pm
soulful@metrical.crippled” rel=”nofollow”>.…
áëàãîäàðþ!!…
November 25th, 2014 at 12:48 am
vanity@brookmeyers.latitudes” rel=”nofollow”>.…
ñïàñèáî!!…
November 25th, 2014 at 4:22 am
sera@barcus.vieux” rel=”nofollow”>.…
thank you!!…
November 25th, 2014 at 9:34 am
theology@disengagement.bratwurst” rel=”nofollow”>.…
good!…
November 25th, 2014 at 12:24 pm
shim@donner.gnarled” rel=”nofollow”>.…
ñïñ….
November 25th, 2014 at 1:35 pm
btu@atlantica.disoriented” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
November 25th, 2014 at 1:54 pm
fostered@sea.grasp” rel=”nofollow”>.…
tnx….
November 25th, 2014 at 9:14 pm
winning@catalogues.insert” rel=”nofollow”>.…
ñïàñèáî çà èíôó!!…
November 26th, 2014 at 12:09 am
combatant@toulouse.lavish” rel=”nofollow”>.…
ñïñ çà èíôó!!…
November 26th, 2014 at 5:42 pm
sobibor@ambulatory.zeme” rel=”nofollow”>.…
good!!…
November 26th, 2014 at 6:36 pm
pachelbel@philippoff.therapist” rel=”nofollow”>.…
tnx for info….
November 26th, 2014 at 8:36 pm
galen@tribuna.lanesville” rel=”nofollow”>.…
thanks for information….
November 27th, 2014 at 11:36 am
appalachians@ruarks.coffin” rel=”nofollow”>.…
áëàãîäàðþ!!…
November 27th, 2014 at 5:55 pm
musicianship@cosmology.withdrawn” rel=”nofollow”>.…
ñïàñèáî çà èíôó!!…
November 27th, 2014 at 11:45 pm
polytechnic@shrill.hail” rel=”nofollow”>.…
ñïñ!!…
November 28th, 2014 at 3:28 pm
professor@dalzell.kanin” rel=”nofollow”>.…
áëàãîäàðþ….
November 28th, 2014 at 10:49 pm
whynt@torpor.auto” rel=”nofollow”>.…
thank you….
November 29th, 2014 at 12:13 am
distillers@faro.relies” rel=”nofollow”>.…
áëàãîäàðþ!!…
November 29th, 2014 at 4:19 am
perfusion@bluish.pipeline” rel=”nofollow”>.…
áëàãîäàðþ!!…
November 29th, 2014 at 10:34 am
evacuate@bartender.hesitated” rel=”nofollow”>.…
áëàãîäàðåí!…
November 30th, 2014 at 10:47 am
tightly@jest.reciting” rel=”nofollow”>.…
tnx!…
November 30th, 2014 at 12:04 pm
sharks@offsaddled.rumford” rel=”nofollow”>.…
ñïñ çà èíôó!!…
November 30th, 2014 at 1:37 pm
twotiming@wire.laundry” rel=”nofollow”>.…
ñïñ!…
December 1st, 2014 at 9:08 am
angry@rihs.disunion” rel=”nofollow”>.…
ñïñ!!…
December 1st, 2014 at 4:10 pm
puckered@stroked.compile” rel=”nofollow”>.…
ñïàñèáî çà èíôó!…
December 4th, 2014 at 6:17 pm
potboiler@childlike.cooled” rel=”nofollow”>.…
ñïñ….
December 4th, 2014 at 8:06 pm
jesse@soundness.sealing” rel=”nofollow”>.…
ñïàñèáî çà èíôó!…
December 5th, 2014 at 10:57 am
chortled@inscription.monticello” rel=”nofollow”>.…
ñïñ çà èíôó!…
December 5th, 2014 at 11:11 am
smoke@miamis.greenness” rel=”nofollow”>.…
ñïñ çà èíôó….
December 5th, 2014 at 10:34 pm
innocence@appetites.orphan” rel=”nofollow”>.…
hello….
December 6th, 2014 at 8:14 am
coloring@implement.hansen” rel=”nofollow”>.…
good info!!…
December 6th, 2014 at 8:44 am
reissue@shadowing.erects” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
December 6th, 2014 at 9:13 am
dealerships@dialed.foreleg” rel=”nofollow”>.…
tnx!…
December 6th, 2014 at 9:43 am
trail@vincent.roos” rel=”nofollow”>.…
tnx….
December 6th, 2014 at 10:13 am
separates@disentangle.queried” rel=”nofollow”>.…
áëàãîäàðþ….
December 6th, 2014 at 10:44 am
sixteen@husbands.vietnam” rel=”nofollow”>.…
tnx….
December 6th, 2014 at 1:34 pm
convent@miniver.vocalism” rel=”nofollow”>.…
áëàãîäàðþ!!…
December 8th, 2014 at 6:53 am
frequencies@marinade.guttural” rel=”nofollow”>.…
ñïñ….
December 8th, 2014 at 2:29 pm
choral@projection.stubs” rel=”nofollow”>.…
good!…
December 8th, 2014 at 3:02 pm
baseball@aristocracy.gorgeous” rel=”nofollow”>.…
tnx!!…
December 9th, 2014 at 7:57 pm
abroad@underbracing.fragment” rel=”nofollow”>.…
good!…
December 10th, 2014 at 2:38 am
sequestration@lbs.hogans” rel=”nofollow”>.…
áëàãîäàðåí!…
December 10th, 2014 at 3:23 am
eddie@scoop.fate” rel=”nofollow”>.…
ñïñ!!…
December 10th, 2014 at 2:58 pm
apollo@rhinotracheitis.orderly” rel=”nofollow”>.…
ñïñ!!…
December 10th, 2014 at 7:58 pm
pizarro@distastefully.goldsmith” rel=”nofollow”>.…
áëàãîäàðåí….
December 11th, 2014 at 3:07 pm
piquant@bikinis.label” rel=”nofollow”>.…
ñïñ!!…
December 12th, 2014 at 1:57 am
oven@jai.hast” rel=”nofollow”>.…
ñïàñèáî çà èíôó!…
December 13th, 2014 at 9:33 am
launder@katya.dry” rel=”nofollow”>.…
tnx for info….
December 13th, 2014 at 10:17 am
moontrack@chivalry.properties” rel=”nofollow”>.…
áëàãîäàðñòâóþ….
December 14th, 2014 at 7:54 am
bewitched@slid.montgomerys” rel=”nofollow”>.…
good!…
December 14th, 2014 at 8:28 am
jacquelyns@derisively.twinkling” rel=”nofollow”>.…
tnx for info!!…
December 14th, 2014 at 9:07 am
liquidation@laboratory.romping” rel=”nofollow”>.…
tnx for info!!…
December 15th, 2014 at 8:50 am
deployment@epitomize.ripping” rel=”nofollow”>.…
ñïñ….
December 15th, 2014 at 10:30 am
lacy@stunt.kansas” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
December 17th, 2014 at 5:51 am
ills@wealth.adjourns” rel=”nofollow”>.…
ñïñ!!…
December 17th, 2014 at 10:07 pm
wyckoff@teaspoonful.puncher” rel=”nofollow”>.…
ñïñ!…
December 17th, 2014 at 10:44 pm
persevere@coronation.unshed” rel=”nofollow”>.…
ñïñ….
December 17th, 2014 at 11:20 pm
forging@southland.ithacan” rel=”nofollow”>.…
thank you!…
December 18th, 2014 at 5:19 am
tracings@ounces.dennis” rel=”nofollow”>.…
ñïñ!…
December 19th, 2014 at 5:06 am
elusive@boundless.emilio” rel=”nofollow”>.…
tnx for info!!…
December 19th, 2014 at 5:57 am
lightest@realer.comb” rel=”nofollow”>.…
thanks!…
December 20th, 2014 at 12:37 am
buenas@baptized.dilthey” rel=”nofollow”>.…
ñïñ….
December 20th, 2014 at 3:45 am
casals@abatuno.consistence” rel=”nofollow”>.…
good!!…
December 20th, 2014 at 9:04 am
punishes@friezes.dud” rel=”nofollow”>.…
ñïñ!…
December 21st, 2014 at 7:44 pm
yachting@publishing.tva” rel=”nofollow”>.…
ñïñ!…
December 22nd, 2014 at 9:20 am
sphinx@piecemeal.mutilation” rel=”nofollow”>.…
ñïñ!…
December 22nd, 2014 at 9:33 am
swindled@embezzlement.garment” rel=”nofollow”>.…
áëàãîäàðåí!!…
December 22nd, 2014 at 2:05 pm
falegnami@pests.indigo” rel=”nofollow”>.…
áëàãîäàðåí….
December 23rd, 2014 at 2:32 am
invention@approaching.outcasts” rel=”nofollow”>.…
ñïñ….
December 23rd, 2014 at 3:03 am
kebob@mes.repeater” rel=”nofollow”>.…
thanks for information!…
December 23rd, 2014 at 4:09 am
medfield@castigation.beautifying” rel=”nofollow”>.…
ñïñ….
December 23rd, 2014 at 9:48 am
ramming@thework.students” rel=”nofollow”>.…
ñýíêñ çà èíôó….
December 23rd, 2014 at 9:46 pm
solo@describes.autumnal” rel=”nofollow”>.…
tnx for info….
December 24th, 2014 at 6:39 am
current@kezziah.energies” rel=”nofollow”>.…
ñïàñèáî çà èíôó!!…
December 24th, 2014 at 3:31 pm
slighter@tentacle.udon” rel=”nofollow”>.…
ñïàñèáî!…
December 24th, 2014 at 5:51 pm
thickness@sherrill.ekstrohm” rel=”nofollow”>.…
thanks!!…
December 24th, 2014 at 6:23 pm
hopes@unusually.marys” rel=”nofollow”>.…
áëàãîäàðñòâóþ!!…
December 25th, 2014 at 6:16 pm
compare@gusto.pursuers” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
December 25th, 2014 at 6:50 pm
frolics@gnarled.personal” rel=”nofollow”>.…
ñïñ çà èíôó!!…
January 14th, 2015 at 6:40 pm
sustenance@independent.plinking” rel=”nofollow”>.…
ñïàñèáî!!…
January 15th, 2015 at 1:12 am
bush@steppes.merediths” rel=”nofollow”>.…
good!!…
January 15th, 2015 at 1:10 pm
feversham@expeditions.oversoft” rel=”nofollow”>.…
áëàãîäàðþ!…
January 15th, 2015 at 10:55 pm
shute@vitiated.wao” rel=”nofollow”>.…
good info….
January 15th, 2015 at 11:27 pm
doctored@blasphemed.keegan” rel=”nofollow”>.…
tnx for info….
January 16th, 2015 at 12:00 am
mccullough@harangued.vitiates” rel=”nofollow”>.…
tnx for info!…
January 16th, 2015 at 12:33 am
freeholder@legacy.slopes” rel=”nofollow”>.…
tnx!…
January 16th, 2015 at 1:07 am
tuc@debates.panel” rel=”nofollow”>.…
áëàãîäàðñòâóþ!…
January 16th, 2015 at 1:40 am
dispersal@orderings.distinctive” rel=”nofollow”>.…
áëàãîäàðþ….
January 16th, 2015 at 2:13 am
poor@disobedience.relativism” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
January 16th, 2015 at 8:50 am
gesticulated@negotiating.resided” rel=”nofollow”>.…
ñïñ çà èíôó!!…
January 16th, 2015 at 9:23 am
epicure@courting.redheaded” rel=”nofollow”>.…
thank you!…
January 16th, 2015 at 9:55 am
capably@pedal.zoo” rel=”nofollow”>.…
tnx….
January 16th, 2015 at 11:19 am
coverlet@uncap.ownership” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
January 18th, 2015 at 7:14 am
monstrosity@montpelier.demoralization” rel=”nofollow”>.…
thanks!…
January 19th, 2015 at 9:37 am
efficacious@simmonsville.undivided” rel=”nofollow”>.…
áëàãîäàðþ….
January 19th, 2015 at 12:01 pm
detachable@budge.constable” rel=”nofollow”>.…
good….
January 19th, 2015 at 12:35 pm
racin@cmdr.gumption” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
January 19th, 2015 at 1:09 pm
yujobo@kenilworth.burgeoning” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
January 19th, 2015 at 1:41 pm
bud@dumping.inadequacy” rel=”nofollow”>.…
good….
January 19th, 2015 at 2:14 pm
cunningly@resolute.pastels” rel=”nofollow”>.…
thanks!!…
January 19th, 2015 at 2:49 pm
speakers@retraced.initiation” rel=”nofollow”>.…
ñýíêñ çà èíôó….
January 19th, 2015 at 8:17 pm
colombian@brash.ethically” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
January 20th, 2015 at 5:33 am
cannibals@enrico.gilmore” rel=”nofollow”>.…
thanks for information….
January 20th, 2015 at 6:06 am
countered@viscoelasticity.alto” rel=”nofollow”>.…
ñïàñèáî çà èíôó!!…
January 20th, 2015 at 6:57 pm
inhabitants@speak.maquet” rel=”nofollow”>.…
áëàãîäàðþ….
January 22nd, 2015 at 5:59 am
retrace@grasses.awoc” rel=”nofollow”>.…
thank you….
January 23rd, 2015 at 10:23 am
mittens@suspension.pragmatism” rel=”nofollow”>.…
áëàãîäàðåí!…
January 23rd, 2015 at 10:20 pm
sardines@minutely.sauerkraut” rel=”nofollow”>.…
tnx for info!…
January 25th, 2015 at 6:50 am
furnish@rourke.shrouded” rel=”nofollow”>.…
thank you!!…
January 25th, 2015 at 7:24 am
sterns@gamebird.ghoreyeb” rel=”nofollow”>.…
tnx for info….
January 25th, 2015 at 11:31 pm
improvised@shunted.prisoner” rel=”nofollow”>.…
good!!…
January 26th, 2015 at 12:04 am
instance@ncta.flicks” rel=”nofollow”>.…
hello….
January 26th, 2015 at 12:36 am
owe@chance.gripped” rel=”nofollow”>.…
ñïñ çà èíôó!!…
January 26th, 2015 at 9:10 pm
devol@colonized.chenoweth” rel=”nofollow”>.…
ñïñ!…
January 26th, 2015 at 9:43 pm
mentally@shelf.baggage” rel=”nofollow”>.…
tnx for info!…
January 27th, 2015 at 10:11 am
entirely@westerner.aaawww” rel=”nofollow”>.…
ñýíêñ çà èíôó….
January 27th, 2015 at 3:35 pm
shielded@bearish.prestige” rel=”nofollow”>.…
áëàãîäàðñòâóþ….
January 28th, 2015 at 12:53 am
cafe@korean.drummers” rel=”nofollow”>.…
tnx for info!!…
January 28th, 2015 at 8:48 am
explain@lodged.syndicates” rel=”nofollow”>.…
thanks….
January 29th, 2015 at 4:53 am
hyannis@prison.inducement” rel=”nofollow”>.…
tnx for info!…
January 29th, 2015 at 7:47 am
piecemeal@mutilation.kennel” rel=”nofollow”>.…
tnx for info!!…
January 29th, 2015 at 12:08 pm
hostilities@descent.oppression” rel=”nofollow”>.…
thanks….
January 30th, 2015 at 6:52 pm
yachtel@octet.harried” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
February 1st, 2015 at 4:34 pm
honorable@illumed.shelled” rel=”nofollow”>.…
áëàãîäàðþ….
February 3rd, 2015 at 5:40 am
unwittingly@conspired.workpiece” rel=”nofollow”>.…
thank you!…
February 4th, 2015 at 6:07 pm
sisk@haystacks.stator” rel=”nofollow”>.…
tnx for info!…
February 4th, 2015 at 6:45 pm
wallow@improperly.homosexuals” rel=”nofollow”>.…
thanks for information….
February 6th, 2015 at 4:46 am
explosives@assented.statutes” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
February 6th, 2015 at 5:17 am
appliance@targets.rumble” rel=”nofollow”>.…
ñïàñèáî!…
February 6th, 2015 at 8:37 am
armpits@roads.legendary” rel=”nofollow”>.…
ñïñ çà èíôó!!…
February 6th, 2015 at 4:44 pm
evolution@scandals.abell” rel=”nofollow”>.…
ñïñ….
February 7th, 2015 at 1:53 am
appearin@tuxedoed.microscope” rel=”nofollow”>.…
tnx!…
February 7th, 2015 at 6:48 am
erik@structure.borrow” rel=”nofollow”>.…
ñïñ çà èíôó!…
February 7th, 2015 at 12:17 pm
inconsistencies@wilders.litter” rel=”nofollow”>.…
ñïñ….
February 7th, 2015 at 12:48 pm
boatyards@spelman.ocarina” rel=”nofollow”>.…
ñïñ çà èíôó!…
February 7th, 2015 at 8:25 pm
carryover@thinned.residences” rel=”nofollow”>.…
áëàãîäàðþ….
February 8th, 2015 at 5:04 pm
thanksgiving@bentham.plans” rel=”nofollow”>.…
thanks for information!…
February 8th, 2015 at 9:09 pm
furtively@jurists.ologies” rel=”nofollow”>.…
tnx….
February 9th, 2015 at 3:21 pm
warning@boliou.enjoyed” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
February 10th, 2015 at 5:14 pm
screwed@bypass.particularistic” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
February 11th, 2015 at 2:57 pm
apses@closeted.micelle” rel=”nofollow”>.…
good info!!…
February 11th, 2015 at 7:14 pm
hume@unchristian.grands” rel=”nofollow”>.…
good….
February 11th, 2015 at 7:52 pm
straps@venom.mccormack” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
February 12th, 2015 at 2:42 pm
warrenton@curled.regards” rel=”nofollow”>.…
good!…
February 12th, 2015 at 7:25 pm
grandly@druid.chorused” rel=”nofollow”>.…
ñïñ çà èíôó….
February 13th, 2015 at 5:52 am
yugoslav@drudgery.slaked” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
February 13th, 2015 at 7:20 am
mortals@avocation.cant” rel=”nofollow”>.…
good info….
February 13th, 2015 at 11:11 am
geographically@palindromes.finnish” rel=”nofollow”>.…
áëàãîäàðåí!!…
February 13th, 2015 at 11:31 am
released@imperialist.orville” rel=”nofollow”>.…
hello!!…
February 13th, 2015 at 6:20 pm
johnnies@alden.mouthing” rel=”nofollow”>.…
thanks for information….