我可以使用objdump反汇编平面二进制文件吗?
我熟悉使用以下方法反汇编结构化二进制可执行文件,例如ELF文件:
objdump -d file.elf
Run Code Online (Sandbox Code Playgroud)
但是,如果我有一个我知道应该加载的平面二进制文件,例如地址0xabcd1000,我可以请求objdump反汇编吗?我尝试提供诸如'--start-address = 0xabcd1000'之类的选项,但是objdump只是声明它不能识别格式.
我有关于如何反汇编文件的其他想法,但我想知道objdump是否可以提供一个简单的解决方案.
我正在尝试创建一个网页,其中包含用户可以从中选择的元素表.元素的数量可以与单个元素一样小,但也可以增加到120左右.我不希望表格向下拉伸页面,因此我将其填充到<div>
具有已定义高度的自定义标记中垂直滚动条.一个简单的例子:
<div style="width:100px; height:100px; overflow-y:scroll; overflow-x:hidden;">
<table>
<tr><td>item 1</td></tr>
<tr><td>item 2</td></tr>
<tr><td>item 3</td></tr>
<tr><td>item 4</td></tr>
<tr><td>item 5</td></tr>
<tr><td>item 6</td></tr>
<tr><td>item 7</td></tr>
<tr><td>item 8</td></tr>
<tr style="color:#00aa00"><td>item 9</td></tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
在此示例中,表位于垂直滚动区域,活动项是表中的最后一个.到现在为止还挺好.
我的问题是:更新此表时,如何设置它以便自动滚动到最后?例如,当页面被创建时,它应该自动选择元素#9; 用户界面应该已经在列表中突出显示该项目,这意味着自动将滚动条设置为结束.
我没有看到使用<div>
标签的方法(虽然我可能会遗漏一些东西).我需要使用<iframe>
标签吗?我想如果表的每一行都有一个锚标记,那么滚动位置可以这样设置.我不完全确定怎么做,所以我想我会问.
我知道可能有数据表插件我可以用来做这个(我之前使用的是YUI,我从来没想过它是否可以解决这个特殊问题).但这看起来很简单,我觉得我不需要导入任何可以轻松用作整个浏览器内电子表格的插件.
高级视图:我使用Emscripten将各种传统的C/C++代码库转换为优化的JavaScript,以便基于浏览器的现代用户库可以轻松利用其功能.到现在为止还挺好.但是,即使在网络传输压缩之后,Emscripten-transiled JS也会有点笨重.
为了改善用户体验,我想在主页加载后下载这个巨大的JS块,并且我想监视下载进度以显示在页面UI中.我知道有两种动态加载方法,我遇到了两个方面的缺点:
onload
事件触发时,该文件被下载并准备运行.这种方法的问题是我找不到监视下载进度的方法.脚本对象确实有一个onprogress
事件,但它似乎没有做任何事情(在Chrome中测试).eval()
在下载的数据上运行JS 没有正确的效果(预期的函数不会显示在JS命名空间中).执行eval()
更简单的带有JS的字符串具有预期的结果,所以我想知道eval()
在Emscripten编译的代码上运行是否有一些特殊技巧.
相反,我已经实现了一种结合上述方法1和方法2的混合解决方案:XHR执行初始加载并丢弃数据.然后,页面创建一个脚本元素来加载相同的JS文件,该文件现在位于浏览器的缓存中并立即加载.但这显然是一个黑客,我不禁想到必须有一个更清洁的解决方案.
我一直在使用SQLite(3)作为一个小型网站.最近,我发现了SQLite的全文搜索(FTS)功能,并将其用于简单的搜索功能.但是,用户无意中发现搜索字符串中的连字符(' - ')表示错误.它似乎表明应该排除紧随其后的令牌.实际上,当我将连字符更改为加号或空格时,它确实有效.
我的问题:1)我在这个分析中是否正确?我阅读了有关FTS功能的SQLite文档,但未发现有关此问题的讨论.2)我该如何缓解这种情况?在将连字符传递给SQLite之前手动替换连字符?
我所看到的一个小的具体例子:
sqlite> CREATE VIRTUAL TABLE fts_table USING fts4
...> ( content TEXT );
sqlite> INSERT INTO fts_table VALUES ("Title: F-1 Race (Game Boy)");
sqlite> INSERT INTO fts_table VALUES ("Title: F-Zero (SNES)");
sqlite> INSERT INTO fts_table VALUES ("Title: F-15 Strike Eagle II (Genesis)");
sqlite> SELECT * FROM fts_table;
Title: F-1 Race (Game Boy)
Title: F-Zero (SNES)
Title: F-15 Strike Eagle II (Genesis)
Run Code Online (Sandbox Code Playgroud)
(这个数据库与旧的视频游戏有关,你可能已经猜到了.)
因此,网站从用户处获取搜索字符串,并使用MATCH运算符将其插入SELECT语句.对于搜索字符串'f-zero',相关的SQL变为:
sqlite> SELECT * FROM fts_table WHERE …
Run Code Online (Sandbox Code Playgroud) 我有一个包含__main__.py
文件的zip存档:archive.zip
我可以执行它
python archive.zip
=> OK !
Run Code Online (Sandbox Code Playgroud)
但没有
cat archive.zip | python
=> File "<stdin>", line 1
SyntaxError: Non-ASCII character '\x9e' in file <stdin> on line 2,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)
为什么两种模式之间存在差异?有没有办法让管道在没有解压缩到python之外的情况下工作?
我通过网络收到这个存档,并希望我收到它后尽快执行它,所以我认为将zip管道输入python会起作用!
javascript ×2
compression ×1
css ×1
disassembly ×1
emscripten ×1
html ×1
iframe ×1
objdump ×1
python ×1
python-2.6 ×1
sql ×1
sqlite ×1
zip ×1