| Deutsch English Français Italiano |
|
<vido3f$1alav$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Don Y <blockedofcourse@foo.invalid> Newsgroups: sci.electronics.design Subject: Re: Datasheet-flation? Date: Fri, 29 Nov 2024 18:00:21 -0700 Organization: A noiseless patient Spider Lines: 50 Message-ID: <vido3f$1alav$1@dont-email.me> References: <6vf4kjtqtmhcpab43duk2u7usunavpjaj6@4ax.com> <vhvio7$9k2m$2@paganini.bofh.team> <abp6kjtctamch521osoao98hq97m6499o1@4ax.com> <no4d1lx2hv.ln2@Telcontar.valinor> <vi0qbd$2k2de$1@dont-email.me> <pu5e1lxvli.ln2@Telcontar.valinor> <vi1sen$2p269$2@dont-email.me> <4qtg1lx7ms.ln2@Telcontar.valinor> <vi4j09$3fb75$1@dont-email.me> <422i1lxd1l.ln2@Telcontar.valinor> <vi7j20$3b4e$1@dont-email.me> <m09m1lxq3c.ln2@Telcontar.valinor> <vibd8b$u5qg$2@dont-email.me> <almjkjdhii2a9jdtu8007u2cj4ms99rm01@4ax.com> <3urp1lxv75.ln2@Telcontar.valinor> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 30 Nov 2024 02:00:32 +0100 (CET) Injection-Info: dont-email.me; posting-host="f835b31cccece20a0963e0b02a069640"; logging-data="1398111"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/cKO/xqpUcTc+QYrk9BJus" User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Cancel-Lock: sha1:CeM1hnC27oCzNQDKUTbxYBcD1T4= In-Reply-To: <3urp1lxv75.ln2@Telcontar.valinor> Content-Language: en-US Bytes: 4198 On 11/29/2024 3:30 PM, Carlos E.R. wrote: > My first job was as programmer for small company. They had tasked an external > programmer with creating a software for them with LabWindows. This thing > creates displays; think a virtual oscilloscope display, for instance, measuring > things like temperature, pressure, rpm, etc. My boss says "I want you to add a > voltage display". Simple. > > Well, the original programmer had removed the header file that assigned labels > to both the display windows and the code. The code would say "display_crt(31, > A1)", where 31 was the element in the display to display rpm, for instance. If > I inserted "voltage" in the display window, all the numbers shifted by one, so > that 31 became pressure, for instance. > > The programmer had sabotaged the code so that no one could touch it by > replacing labels with their values. > > It took me months to recreate the header file with labels. My boss thought I > was useless: it is difficult to explain this to a non programmer. I took a contract, years ago, to address a similar issue; they had hired a "student" to write the code, he managed to get it working, then finished school and "moved on". Of course, they eventually wanted to modify the product and discovered that they didn't have a *copy* of the source code -- not even a PRINT copy! So, I reverse engineered the binary (not just "decompile" because that sort of result adds very little to understanding the code) adding comments, judiciously choosing function and variable names, etc. Some years later, I took on a much larger reverse engineering job (500KB binary). But, relied on tools to help with a lot of the grunt work. > I carefully documented since then every program I wrote. I did not want any > other person to suffer what I did. Be thankful it wasn't intentionally obfuscated! In your case, all you had to do was recreate the symbol mappings. Imagine if the original code had been passed through an obfuscator so, in addition to symbolic names, the actual control flow had been deliberately distorted! For closed designs, it is relatively easy to embed invisible dependencies in the code that are highly resistant to "tampering" (revising the software is just a special case of tampering!). If you don't understand that this has been done to thwart your efforts, you can spend AGES looking for elusive bugs that have been DESIGNED to deliberately hide! [The goal of any such effort is to increase the cost of copying/modifying to the point where it approaches the cost of designing from scratch]