Dominique finished her instant cup of ramen, her third day straight. She and the other developers at Bento had gone a month without pay as they finished the beta version of their only application: a browser for promotional materials of yet-to-be-released merchandise.

Her cellphone rang. It was CEO Stephen, who was wooing investors with a demo. “How hard is it to block a user from capturing a screen image?”

A menu offering a screen recording option

“It’s possible,” she began. “We’d need to encrypt all copyrighted images that are stored to disk, disable the print screen button, disable the context menu when a user right-clicks–”

“Great, thanks.” Stephen hung up.

Stephen returned to the office an hour later. “We’ll need copy protection for a new demo next Monday,” he said.

“I didn’t even get to the hard stuff,” Dominique replied. “Like screen capturing software. You’re talking about a dozen different applications we’d need to write fixes for.”

“Sure, but you can do it by Monday, right? It’s the one thing they’re insisting on.”

The List

Dominique assembled the other developers for a stand-up meeting. She wrote on the whiteboard:

1) SnagIt
2) ImageMagick

“Listen. If we want to get paid, we need to sell Bento to those investors on Monday. We need a list of every piece of software that can capture video, still shots, even low-resolution images. These are the two obvious ones.”

The other developers took turns at the whiteboard, listing different applications that could potentially grab screen captures. By the end, the list was twenty items long. Dominique gave each developer, including herself, two items from the list to finish by Monday.

Pizza and Coffee

After much prodding, Stephen gave the company credit card to Dominique, which she used on pizza and coffee to feed the team, who worked 16-hour days through the week and into the weekend. Every four hours, Dominique would cross off the applications on the whiteboard that had been successfully blocked, writing the commit hash next to each. They used everything, from registry hacks to dirty assembly tricks.

Sunday evening, Stephen came to check on their progress. Dominique showed him the board. “There’s one item left,” she said. “We can’t find any documentation on it that isn’t in Korean.”

“We have to cover everything,” he said. “If they discovered that we knew about this vulnerability, we’d be culpable if someone snagged an image.”

Dominique checked in her last fix the next morning, just a few hours before the presentation. Giving up on trying to find English documentation, instead she made Bento crash the Korean application if it was running alongside their own software.

Screen Shot

Dominique washed up and slept a few hours before meeting Stephen at a nearby office park. The investment group were situated in an office covering an entire floor, and the conference room was bigger than their own office.

Seated among the investors was a scrappy teenager with red-spiked hair.

“This is my nephew,” one of them explained. “He knows his way around computers. Consider this the ‘bull in a china shop’ test.”

Dominique watched as the teenager tried out as many ways as he could to get a screenshot of Bento’s images. He went through almost all the tricks they had found the week before. After ten minutes, most of the investors seemed satisfied.

Then the teen pulled out his cellphone and took a picture of the screen.

The uncle of the teen examined the photo. “You can make out a lot of detail on here,” he said. “You lied to us. You said this would be foolproof.”

The investors declined to fund Bento.

Stephen looked deflated as he left the office building. Dominique felt worse: there would be no money for payroll next month. Glumly, she wondered if that investor who brought his nephew didn’t want to fund Bento in the first place, and was just trying to get them out the door. The only other explanation was worse: a software investor was stupid enough to think a desktop application could prevent a digital camera from taking photos.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!