我发现可以从二进制文件中提取硬编码字符串.
例如,Process Explorer的属性视图显示超过3个字符的所有字符串.
这是我编写的简单可执行文件的代码,只是为了测试它:
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
_TCHAR* hiddenString1 =_T("4537774B-CC80-4eda-B3E4-7A9EE77991F5");
_TCHAR* hiddenString2 =_T("hidden_password_or_whatever");
for (int i= 0; i<argc; i++) {
if (0 == _tcscmp(argv[i],hiddenString1)) {
_tprintf (_T("The guid argument is correct.\n")); }
else if (0 == _tcscmp(argv[i],hiddenString2)) {
_tprintf (_T("Do something here.\n")); }
}
_tprintf (_T("This is a visible string.\n"));
//Keep Running
Sleep(60000);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
字符串可以清楚地从相应的可执行文件中提取:

我认为找到字符串有点太容易了.
我的问题是:
c++ security obfuscation defensive-programming reverse-engineering
我想用PayPal销售我的Java应用程序.收到付款后,客户会通过邮件向我的应用程序发送一次性下载链接.
我的问题是,如何阻止人们将.jar文件发送给他们的朋友/上传到互联网上?
显然我需要在应用程序中进行某种检查,只允许它在一台计算机上运行.这是另一个问题,我不希望客户在一台计算机上有限制,他们应该能够在家里和工作中运行它等.
也许某种cd-key可以解决这个问题?那里有Java的任何cd-key资源吗?或者我应该建立自己的算法?这是另一个问题,逆向工程..
请帮帮我解决这个:)
我可以使用objdump反汇编平面二进制文件吗?
我熟悉使用以下方法反汇编结构化二进制可执行文件,例如ELF文件:
objdump -d file.elf
Run Code Online (Sandbox Code Playgroud)
但是,如果我有一个我知道应该加载的平面二进制文件,例如地址0xabcd1000,我可以请求objdump反汇编吗?我尝试提供诸如'--start-address = 0xabcd1000'之类的选项,但是objdump只是声明它不能识别格式.
我有关于如何反汇编文件的其他想法,但我想知道objdump是否可以提供一个简单的解决方案.
我的意思是,我总是想知道如何有人可以开发算法来打破/欺骗许多共享软件程序中合法使用的限制.
只是为了好奇.
我正在寻找一种工具,可以将Java反向工程为序列图.但也提供了过滤掉某些库调用的功能.
例如,Netbeans IDE在这方面做得非常出色,但它包括对String或Integer的所有调用,这会使图表混乱到无法使用的程度.
任何帮助是极大的赞赏!!!!!!!
可能重复:
是否可以解密md5哈希?
我使用密码存储在数据库中md5,并且想知道是否有办法扭转哈希,以便在忘记密码时将用户的密码通过电子邮件发送给他.
如果这不是最合适的方法,处理丢失密码的适当方法是什么?
当我启动.NET exe时会发生什么?我知道C#被编译为IL代码,我认为生成的exe文件只是启动运行时并将IL代码传递给它的启动器.但是怎么样?它的过程有多复杂?
IL代码嵌入在exe中.我认为它可以从内存中执行而不将其写入磁盘,而普通的exe不是(好的,是的,但它非常复杂).
我的最终目标是提取IL代码并编写我自己的加密启动器,以防止scriptkiddies在Reflector中打开我的代码并轻松窃取我的所有类.好吧,我无法完全阻止逆向工程.如果他们能够检查内存并抓住我将纯IL传递给运行时的那一刻,那么无论是否是.net exe都没关系,是吗?我知道有几个混淆器工具,但我不想弄乱IL代码本身.
编辑:所以似乎不值得尝试我想要的.无论如何他们都会破解它...所以我会寻找一个混淆工具.是的,我的朋友也说,将所有符号重命名为无意义的名称就足够了.毕竟逆向工程并不那么容易.
有这个和这个,他们都生成完全不可读的代码,一个比另一个更可爱.
现在,我不是Javascript的专家,但我没有看到如何
????= /??´?? ~??? //*´??*/ ['_']; o=(???) =_=3; c=(???) =(???)-(???); (???) =(???)= (o^_^o)/ (o^_^o);(???)={???: '_' ,???? : ((????==3) +'_') [???] ,???? :(????+ '_')[o^_^o -(???)] ,????:((???==3) +'_')[???] }; (???) [???] =((????==3) +'_') [c^_^o];(???) ['c'] = ((???)+'_') [ (???)+(???)-(???) ];(???) ['o'] = ((???)+'_') [???];(?o?)=(???) ['c']+(???) ['o']+(???? +'_')[???]+ ((????==3) +'_') [???] + ((???) +'_') [(???)+(???)]+ ((???==3) +'_') [???]+((???==3) +'_') [(???) - (???)]+(???) ['c']+((???)+'_') [(???)+(???)]+ (???) ['o']+((???==3) +'_') [???];(???) ['_'] =(o^_^o) [?o?] [?o?];(???)=((???==3) +'_') [???]+ (???) .????+((???)+'_') [(???) + …Run Code Online (Sandbox Code Playgroud) 我有一个Android apk,我删除了我的源代码,没有再次项目,我想更改旧apk的版本代码.我的问题是我如何解压缩和重新包装apk,所以我可以使用.我正在使用mac系统.我看到很多东西用于windows但我找不到mac.我需要帮助
我有一个二进制文件.我不知道它是如何格式化的,我只知道它来自delphi代码.
是否存在分析二进制文件的任何方式?
是否存在任何"模式"来分析和反序列化具有未知格式的文件的二进制内容?