我正在使用插件在Python中为IDA Pro反汇编程序编写脚本idapython.使用此功能,我可以填补IDA自动分析不足的空白.
令我难以理解的一个领域是命名位置/功能(为了更好的术语)"漂亮的名字".我的意思的一个例子如下图所示:

idapython和IDA Pro本身只允许我输入基本的C-ish函数名称.如果我输入不允许的符号(例如范围解析运算符),则将它们替换为下划线.但是,如果我手工输入一个受损的名字(例如__ZN9IOService15powerChangeDoneEm),IDA Pro 会为我美化这个.
因此我的问题是:如何生成错位名称idapython?有可用的名称库吗?有一个在Python中可用吗?我唯一的希望是将破坏功能从中解决g++并解决这个问题吗?
如果我声明一个这样的块^{ DoSomething; }并将其放在一个实例变量中,Block_copy()如果我要保留它,我是否需要?
我遇到了inode号的问题.当我挂载一个usb磁盘(让我们说usb-a)然后挂载另一个usb磁盘(usb-b)时,usb-a中的inode编号会被更改.
这是正常的吗?什么可能导致这个问题?我正在使用Linux Kernel 2.6.usb -a是vfat而usb-b是ntfs.
先谢谢你们.
严肃的问题.
我尝试了大多数着名的网站(包括脸谱版),我可以说,在禁用js的情况下,大量的功能都不会降级.我总是被告知js应该优雅地降级,但这仍然适用于这些日子和时代吗?
几个站点正在删除ie6支持,并且大多数web2.0严重依赖于js(尤其是ajax,我甚至发现一些站点不允许你在没有启用js的情况下登录).
你对此有何看法?
编辑:
我想补充一点,我首先开发没有js的webapps,然后用它来增强它们.问题是年复一年,js越来越成为网络的一部分.HTML5,canvas和重js应用程序开始兴起.我们是否会达到js在大多数网站中必修的程度?我谈到了facebook,因为该网站实际上已经降级,并且可以在没有js的情况下使用,但大多数功能和快捷方式都被剥夺了网站感觉枯燥和老旧的点.还有一个例子,其中js比服务器端脚本更好,例如,大型表的排序比php实现更快,服务器密集程度更低.
ps我不知道如何使这个社区维基,但我会,我只是对你的意见感兴趣.
我有C和C++的情况,可以用类似装饰器的Python来解决这个问题:我很少有一些函数,我想用其他东西包装,以便在函数输入之前执行某些语句当它离开时,执行其他一些功能.
例如,我在库C文件中有一些函数,当调用它们时应锁定信号量,并在将控件返回给被调用者之前,应该释放信号量.没有锁,他们有以下结构:
int f1(int)
{
...
...
}
int f2(char*)
{
....
}
int f3(blabla)
{
....
}
... fn(...)
Run Code Online (Sandbox Code Playgroud)
我想定义一个全局信号量,在调用每个函数之前应该锁定它们,并在返回函数时释放它们.我想尽可能简单地做到这一点; 接近这个的东西:
#lockprotected
int f1(int)
{
... /* nothing changed over here */
}
#endlockprotected
Run Code Online (Sandbox Code Playgroud)
或类似的东西
int f1(int)
{
... /* nothing changed over here */
}
#lockprotected f1
Run Code Online (Sandbox Code Playgroud)
我不想要的是:
什么是最优雅的方式?
我有一张桌子:
id group data
1 a 10
2 a 20
3 b 10
4 b 20
我想获取具有按"组"分组的最大"数据"值的记录ID,即
id
2
4
要在Windows上运行Rails应用程序,我会:
我看到以下内容:
=> Booting WEBrick
=> Rails 3.0.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-01-12 20:32:07] INFO WEBrick 1.3.1
[2011-01-12 20:32:07] INFO ruby 1.9.2 (2010-08-18) [i386-mingw32]
[2011-01-12 20:32:07] INFO WEBrick::HTTPServer#start: pid=5812 port=3000
Run Code Online (Sandbox Code Playgroud)
问题1
为什么选择端口3000?在哪里配置?
问题2
我怎么能并行运行2个应用程序?我想我需要将其中一个配置为其他端口(如3001).我该怎么做?
有没有办法让我看到在rails控制台中从ActiveRecord触发了哪些mysql查询?
提前致谢.
最近,我正在研究如何使用Solr进行存储和索引.我想做facet.prefix搜索.使用空格标记器,"你在哪里"将被分成三个单词并编入索引.如果我搜索facet.prefix ="where are",则不会返回任何结果.
我google并发现NGramFilterFactory可以帮助我.但是当我应用这个过滤器工厂时,我发现结果是"w,h,e,...,wh,..",它逐字逐句地分割,而不是通过标记字.
我使用参数maxGramSize和minGramSize,设置为1和3. NGramFilterFactory是否正常工作?我应该添加一些其他参数吗?还有其他一些过滤工厂可以帮助我吗?
谢谢!
以下Mathematica代码生成高度振荡的图.我只想绘制情节的下部包络但不知道如何.任何建议都值得赞赏.
tk0 = \[Theta]'[t]*\[Theta]'[t] - \[Theta][t]*\[Theta]''[t]
tk1 = \[Theta]''[t]*\[Theta]''[t] - \[Theta]'[t]*\[Theta]'''[t]
a = tk0/Sqrt[tk1]
f = Sqrt[tk1/tk0]
s =
NDSolve[{\[Theta]''[t] + \[Theta][t] - 0.167 \[Theta][t]^3 ==
0.005 Cos[t - 0.5*0.00009*t^2], \[Theta][0] == 0, \[Theta]'[0] ==
0}, \[Theta], {t, 0, 1000}]
Plot[Evaluate [f /. s], {t, 0, 1000},
Frame -> {True, True, False, False},
FrameLabel -> {"t", "Frequency"},
FrameStyle -> Directive[FontSize -> 15], Axes -> False]
Run Code Online (Sandbox Code Playgroud)

c++ ×2
ajax ×1
c ×1
decorator ×1
group-by ×1
ida ×1
javascript ×1
linux-kernel ×1
lucene ×1
math ×1
objective-c ×1
postgresql ×1
python ×1
ruby ×1
solr ×1
sql ×1
tokenize ×1
windows ×1