TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Circumventing the JVM's Bytecode Verifier

83 点作者 half-kh-hacker超过 5 年前

4 条评论

nneonneo超过 5 年前
Way back when I was messing with Android reverse engineering, there were already a number of obfuscation&#x2F;protection systems which screwed with Dalvik VM internals. One particularly memorable one had a native library, written using a completely incompatible ARM ABI (using the stack pointer as a normal register, a different register for stack-like operations in the opposite direction, using random registers and stack slots for arguments, etc.), whose only job it was to patch the crap out of the Dalvik VM so it would load their custom obfuscated VM bytecode. The main issue (and the reason this kind of obfuscation seems to have gotten less popular) was that it depended extremely heavily on Dalvik internal structure offsets, and had a massive table of version-specific offsets and patch code which presumably became unmaintainable with all the extant versions of Android.<p>Anyway, it’s fun to look at ways to obfuscate bytecode. It’s far too easy to decompile unobfuscated Java code to pretty much perfect source code these days (same goes for any .NET code) - you really do need a little bit of obfuscation to prevent people from trivially stealing your code.
评论 #21923625 未加载
评论 #21923699 未加载
joshstrange超过 5 年前
This is a bit over my head and I&#x27;m out of the JVM world now but I found it all very interesting and well written. One small thing I&#x27;d suggest is to change how footnotes are done. I was very confused when I hit the first footnote &quot;1&quot; but there was no title text and it wasn&#x27;t a link so I just scrolled to the bottom of the article and saw &quot;1. Employing this technique seems to work on Windows and Linux...&quot; and I was very confused as that had nothing to do with &quot;three million devices.&quot;. The &quot;1: n = 3,000,000; ...&quot; in the next paragraph didn&#x27;t register when reading through. I thought it might be a &quot;pull quote&quot;-type thing that would be explained below. There are about a million ways to accomplish footnotes so I won&#x27;t try and say which is best but some color difference (both footnote number and then the text for the footnote) might be helpful in making it more obvious and seems like an easy change.<p>Again, great article and I really don&#x27;t meant to nitpick, the footnotes just confused me a little.
peter_d_sherman超过 5 年前
A must-read for anyone implementing security on a language specific VM or runtime environment, in the future...
评论 #21926649 未加载
Izmaki超过 5 年前
You explained the concept like a senior with tens of years of experience. First year at university... dang. Respect.
评论 #21927389 未加载
评论 #21926224 未加载