我正在阅读代码中的漏洞,并遇到了这个Format-String漏洞.
维基百科说:
当程序员希望打印包含用户提供的数据的字符串时,最常出现格式化字符串错误.程序员可能会错误地写printf(缓冲区)而不是printf("%s",缓冲区).第一个版本将缓冲区解释为格式字符串,并解析它可能包含的任何格式化指令.第二个版本只是按照程序员的意图将字符串打印到屏幕上.
我遇到了printf(缓冲区)版本的问题,但我仍然没有得到攻击者如何使用此漏洞来执行有害代码.有人可以告诉我一个例子如何利用这个漏洞?
Android 2.0的新闻稿指出新版本支持同步适配器,因此电子邮件和日历不仅可以与gmail和交换同步.但是,在线没有可用的信息如何编写这样的同步适配器.有没有人试过它和一些示例代码?
通过我的Android程序,我写了一个这样的文件:
String file = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Files/hello.txt";
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(str+"\n"); \\yeah string has a value there
writer.close();
Run Code Online (Sandbox Code Playgroud)
现在,当我进入Android的"Astro"文件浏览器时,我可以看到文件hello.txt,/mnt/sdcard/Files但是当我在Windows中安装sdcard时,我只能看到该文件夹中有4个其他文件而不是hello.txt.
在Windows本身,我甚至试图取消选中隐藏隐藏文件选项,以确保文件不被隐藏,但它只是不可见.
我甚至试图在SD卡的根目录中写入文件,但同样的问题.现在我很惊讶我怎么可能在Android中看到该文件而在Windows中却看不到.在Android中我甚至检查了文件内容,一切看起来都很好.
可能是什么问题呢?我写错文件的方式是什么?
PS:是的,android.permission.WRITE_EXTERNAL_STORAGE添加了Manifest权限.
我通过我的Android程序写了一个文件,如下所示:
String file = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Files/hello.txt";
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(str + "\n"); \\ Yeah, 'str' has a value there
writer.close();
Run Code Online (Sandbox Code Playgroud)
该程序完成其工作并完成.现在我点击Android上的后退按钮关闭应用程序.现在发生的事情是,如果我去Android文件浏览器(如Astro)我可以看到该文件,但如果我在Windows上安装SD卡,我看不到该文件!
现在,如果我去,__CODE__我甚至可以在Windows中看到该文件.
我应该怎么做才能在Windows中看到一个文件,如果该文件是由我的Android应用程序在SD卡上写的,我不想每次都去设置并强制关闭.
实际上文件写得正确(我认为),但由于Android'后退'按钮的默认行为不会杀死应用程序,看起来除非应用程序被杀,否则我无法在Android之外打开文件(在Android中) ,我仍然能够看到它,甚至打开它).
那么,对于这种情况,什么是最好的解决方案.我应该在关闭时自动终止该应用吗?人们说严格不建议使用System.exit().
我的通话活动:
public class Hello extends Activity {
public void onCreate(Bundle savedInstanceState) {
MyTask mt = new MyTask(this);
mt.execute();
}
Run Code Online (Sandbox Code Playgroud)
现在在MyTask(一个外部类):
public class MyTask extends AsyncTask<Void, Void, Void> {
private Context mContext;
public MyTask(Context context) {
mContext = context;
}
//doinbackground, etc
protected void onPostExecute() {
mContext.finish();
}
Run Code Online (Sandbox Code Playgroud)
如果我删除mContext.finish()上面的其他东西正在按预期工作.
但是如果我正在调用mContext.finish(),我会收到一个错误:( The method finish() is undefined for the type Context当我编写mContext时,Eclipse没有显示finish().所以这表明我错误地使用了finish().)
完成任务Hello后,我需要做什么才能完成调用活动MyTask
我需要将数据发布到服务器(带有"referer"头字段)并在Webview中加载响应.
现在,有不同的方法(来自Android WebView)来做它的一部分,比如:
void loadUrl(String url, Map<String, String> additionalHttpHeaders)
Run Code Online (Sandbox Code Playgroud)
使用指定的其他HTTP标头加载给定的URL.
void loadData(String data, String mimeType, String encoding)
Run Code Online (Sandbox Code Playgroud)
使用"数据"方案URL将给定数据加载到此WebView中.
void postUrl(String url, byte[] postData)
Run Code Online (Sandbox Code Playgroud)
使用"POST"方法将带有postData的URL加载到此WebView中.
loadUrl()允许发送HttpHeaders但不允许发送post数据,其他方法似乎不允许发送HttpHeaders.我错过了什么或我正在尝试的是不可能的?
我已经看到了关于这个主题的大部分问题,但几乎所有问题都已经过时了.(这不是骗局)
我的要求是一个优选的轻量级库,用于从Python(2.7)简单地播放mp3等音频文件
这些是我到目前为止所研究的库,我列出了阻止我使用每个库的因素:
我也试过Pyglet,但即使这样也不好看.还听说wx支持mp3,我正在尝试它.有什么评论吗?
这些天其他人使用哪个可靠的轻量级库?
PS:请每个答案只发一个图书馆
我知道要过滤Android日志消息,我们可以使用类似的东西
adb logcat ActivityManager:I MyApp:D *:S
Run Code Online (Sandbox Code Playgroud)
但是,在我的应用程序中,我使用不同TAGS的不同活动,我只想过滤此应用程序的所有日志.最好的方法是什么?
我是否需要在命令中指定所有标签?
或者在整个应用程序中使用通用标签,唯一的另一种选择?
在查看Eclipse中的日志消息时,我注意到有一个名为列的列PID和另一个名为Application(包含应用程序包名称)的列,Tag对于给定的应用程序,两者(显然)相同.这表明不仅可以通过Tag过滤,也可以通过pid/package过滤.
以前我使用的是旧版本的Android SDK Tools,现在我搬到了一台新电脑,从头开始设置我的新开发环境,并从以前的电脑复制和导入项目。现在,如果我在当前环境中创建一个新项目,我注意到 SDK 在项目的根文件夹中创建了一个文件 proguard.cfg,我在之前的设置中没有看到我之前的任何项目。我查了一下 proguard.cfg 的用法,听起来很有用。但是这个 proguard.cfg 文件不存在于我在之前的设置中创建的项目中。
而且,这也让我觉得新的 SDK 工具可能还有一些我可以使用的新更新和/或功能添加。我应该提到我使用的目标平台是相同的 - Android 2.2,但“Android SDK 工具”已经更新。此外,我现在没有收到任何错误,但正如我所说,我想利用 SDK 工具的更新(而不是目标平台更新)。
所以,我的问题是 - 有没有办法确保我不会遗漏 Android SDK 更新的任何东西,比如 proguard.cfg 或者我需要自己识别这些东西并手动添加文件,对于任何其他东西也是如此这在较新的 SDK 工具中得到了改进。
是否可以通过Android市场(Google Play商店)或其他方式检查应用程序是否已安装?
基本上我想知道的是应用程序是否真实.如果应用程序的安装源是Play Store,那么我们知道名为com.dropbox.android的应用程序是实际的Dropbox应用程序,但如果源不是Play Store,那么任何人都可以创建一个具有相同包名称的Android应用程序并将其安装在设备上.
android ×8
filewriter ×2
audio ×1
c ×1
google-play ×1
http-headers ×1
mp3 ×1
post ×1
python ×1
security ×1
updates ×1
webview ×1