小编Atu*_*yal的帖子

如何利用Format-String漏洞?

我正在阅读代码中的漏洞,并遇到了这个Format-String漏洞.

维基百科说:

当程序员希望打印包含用户提供的数据的字符串时,最常出现格式化字符串错误.程序员可能会错误地写printf(缓冲区)而不是printf("%s",缓冲区).第一个版本将缓冲区解释为格式字符串,并解析它可能包含的任何格式化指令.第二个版本只是按照程序员的意图将字符串打印到屏幕上.

我遇到了printf(缓冲区)版本的问题,但我仍然没有得到攻击者如何使用此漏洞来执行有害代码.有人可以告诉我一个例子如何利用这个漏洞?

c security format-string

64
推荐指数
3
解决办法
7万
查看次数

自己的Android同步适配器?

Android 2.0的新闻稿指出新版本支持同步适配器,因此电子邮件和日历不仅可以与gmail和交换同步.但是,在线没有可用的信息如何编写这样的同步适配器.有没有人试过它和一些示例代码?

android synchronization android-syncadapter

21
推荐指数
3
解决办法
3万
查看次数

在Android文件浏览器中可见时,无法在Windows资源管理器中查看文件

通过我的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 windows-explorer filewriter android-sdcard

13
推荐指数
1
解决办法
2万
查看次数

除非我"强制关闭"应用程序,否则无法在sd-card上看到由Android应用程序编写的Windows文件

我通过我的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().

android windows-explorer filewriter android-sdcard

13
推荐指数
2
解决办法
5459
查看次数

AsyncTask完成后完成调用活动

我的通话活动:

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

android android-context android-asynctask android-activity

13
推荐指数
3
解决办法
3万
查看次数

在Android上发送Post请求和HttpHeaders

我需要将数据发布到服务器(带有"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.我错过了什么或我正在尝试的是不可能的?

post android webview http-headers android-webview

10
推荐指数
1
解决办法
3612
查看次数

用Python播放音频文件

我已经看到了关于这个主题的大部分问题,但几乎所有问题都已经过时了.(这不是骗局)

我的要求是一个优选的轻量级库,用于从Python(2.7)简单地播放mp3等音频文件

这些是我到目前为止所研究的库,我列出了阻止我使用每个库的因素:

  • PyMedia:它最后一次更新于2006年2月
  • Mp3Play:仅支持XP,最后更新于2008年.

我也试过Pyglet,但即使这样也不好看.还听说wx支持mp3,我正在尝试它.有什么评论吗?

这些天其他人使用哪个可靠的轻量级库?

PS:请每个答案只发一个图书馆

python audio mp3

7
推荐指数
1
解决办法
9323
查看次数

通过Android中的PID或应用程序包过滤日志消息

我知道要过滤Android日志消息,我们可以使用类似的东西

adb logcat ActivityManager:I MyApp:D *:S
Run Code Online (Sandbox Code Playgroud)

但是,在我的应用程序中,我使用不同TAGS的不同活动,我只想过滤此应用程序的所有日志.最好的方法是什么?

我是否需要在命令中指定所有标签?

或者在整个应用程序中使用通用标签,唯一的另一种选择?

在查看Eclipse中的日志消息时,我注意到有一个名为列的列PID和另一个名为Application(包含应用程序包名称)的列,Tag对于给定的应用程序,两者(显然)相同.这表明不仅可以通过Tag过滤,也可以通过pid/package过滤.

android android-logcat

7
推荐指数
1
解决办法
3423
查看次数

如何更新旧的 Android 项目以更新新的 Android SDK 工具?

以前我使用的是旧版本的Android SDK Tools,现在我搬到了一台新电脑,从头开始设置我的新开发环境,并从以前的电脑复制和导入项目。现在,如果我在当前环境中创建一个新项目,我注意到 SDK 在项目的根文件夹中创建了一个文件 proguard.cfg,我在之前的设置中没有看到我之前的任何项目。我查了一下 proguard.cfg 的用法,听起来很有用。但是这个 proguard.cfg 文件不存在于我在之前的设置中创建的项目中。

而且,这也让我觉得新的 SDK 工具可能还有一些我可以使用的新更新和/或功能添加。我应该提到我使用的目标平台是相同的 - Android 2.2,但“Android SDK 工具”已经更新。此外,我现在没有收到任何错误,但正如我所说,我想利用 SDK 工具的更新(而不是目标平台更新)。

所以,我的问题是 - 有没有办法确保我不会遗漏 Android SDK 更新的任何东西,比如 proguard.cfg 或者我需要自己识别这些东西并手动添加文件,对于任何其他东西也是如此这在较新的 SDK 工具中得到了改进。

android updates android-sdk-tools

6
推荐指数
1
解决办法
8760
查看次数

是否有可能知道Android应用程序的来源(例如Google Play)?

是否可以通过Android市场(Google Play商店)或其他方式检查应用程序是否已安装?

基本上我想知道的是应用程序是否真实.如果应用程序的安装源是Play Store,那么我们知道名为com.dropbox.android的应用程序是实际的Dropbox应用程序,但如果源不是Play Store,那么任何人都可以创建一个具有相同包名称的Android应用程序并将其安装在设备上.

android android-applicationinfo google-play

6
推荐指数
1
解决办法
518
查看次数