不幸的是,我丢失了我使用ProGuard混淆的一个应用程序的源代码.
我仍然有.apkProGuard生成的文件和一些配置文件:
dump.txtmapping.txtseeds.txtusage.txt到目前为止我做了什么?
如果我现在使用JD-Gui查看源代码(.jar文件),我会看到我的混淆代码.像这样的东西:
class c {
TextView a;
TextView b;
TextView c;
TextView d;
CheckBox e;
}
protected List a(Uri[] paramArrayOfUri) { ... }
protected void a(List paramList) { ... }
Run Code Online (Sandbox Code Playgroud)
还有一些循环看起来有点奇怪.我不写无限循环:
while (true) {
if (!localIterator.hasNext())
return localArrayList;
ProviderInfo[] arrayOfProviderInfo = ((PackageInfo)localIterator.next()).providers;
if (arrayOfProviderInfo == null)
continue;
int i = arrayOfProviderInfo.length;
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用任何ProGuard的.txt文件将混淆的代码重新映射到我的原始源代码?我想看看我自己的变量名称/方法签名.
或者这些文件只能用于跟踪崩溃报告堆栈跟踪?
public main
main proc near
push ebp
mov ebp, esp
and esp, 0FFFFFFF0h
sub esp, 30h
mov dword ptr [esp], 8 ; size
call _malloc
mov [esp+2Ch], eax
mov dword ptr [esp+4], 4
mov eax, [esp+2Ch]
mov [esp], eax
call __start
Run Code Online (Sandbox Code Playgroud)
上面的代码代表了我正在处理的大型项目的一部分.我试图将此代码转换为C等效,但我很难理解malloc如何工作.
我估计8个字节将是被分配的内存的大小; 但是,我不确定这条线.
mov eax, [esp+2ch]
Run Code Online (Sandbox Code Playgroud)
malloc对eax做了什么?
那么这是等效的C代码吗?
int main(void)
{
int *ptr1;
ptr1 = (int *)malloc(sizeof(8));
*ptr1 = 4;
__start(*ptr1);
Run Code Online (Sandbox Code Playgroud) 我想要一个编译时字符串加密,这样我就可以在我的代码中编写:
const auto encryptedInvalidLicense = ENCRYPT("Invalid license");
std::cout << encryptedInvalidLicense.decrypt() << std::endl; // outputs "Invalid license"
Run Code Online (Sandbox Code Playgroud)
并且字符串"Invalid license"不会出现在二进制文件中.预构建可能是答案,但我正在寻找一个纯c ++ constexpr解决方案来解决这个问题,它将得到VS2015的支持.
有什么建议?
我已经研究过编译时字符串加密,它没有为问题提供constexpr解决方案.
我还研究了http://www.unknowncheats.me/forum/c-and-c/113715-compile-time-string-encryption.html.虽然它是一个constexpr解决方案,但VS2015仍然将字符串纯文本添加到二进制文件中.
通过反向工程从其他应用程序反向工程未加密的二进制文件格式并阅读内容,在我的应用程序中添加对第三方文件格式的支持是否合法?
是否有应用程序对mysql和/或postgre中的现有数据库进行逆向工程?
我有兴趣从现有的DB图中获取数据库图,类似于在MSSQL Server中可以完成的
问候!
我目前正在尝试扩展Magic Mouse的功能.为此,我希望编写一个截取来自多点触控驱动程序AppleMultitouchDriver.kext的事件的kext,解释它们,然后调度新事件或转发实际事件.这种方法类似于DoubleCommand使用的方法.
我已经创建了一个小的测试kext,它可以拦截鼠标事件(点击,动作等).
我现在遇到的问题是我无法拦截来自AppleMultitouchDevice和/或AppleMultitouchHIDEventDriver对象的事件,因为它们没有类定义.我需要能够像在鼠标拦截器中那样将指针重新分配给回调函数,就像在DoubleCommand中一样.据我所知,这意味着我需要重建AppleMultitouchDevice类.我已经能够获得对AppleMultitouchDevice对象实例的引用,所以我只需要能够转换它并使用它.
既然你有背景,这是我的直接问题:
提前感谢您的任何建议或帮助!!
我有一个下载并安装的桌面程序.它从.exe文件运行.
是否有一些来自.exe文件的方法来告诉用什么编程语言来编写程序?
有没有工具可以帮助解决这个问题?
可以确定哪些语言,哪些语言不能?
好的,这是我正在寻找的两种东西:
这种"IsDelphi"节目由布鲁斯·麦基会发现德尔福,德尔福建成面向.NET或C++ Builder是你的硬盘上的所有应用程序.
windows delphi executable programming-languages reverse-engineering
如果分发了这个二进制文件,则每个c程序都转换为机器代码.由于计算机的指令集众所周知,是否可以取回C原始程序?
我正在使用EF,我已经获得了Entity Framework Power Tools扩展,它允许我根据给定数据库中的表对类进行逆向工程.
我们有一个相当广泛的数据库,有很多表我不需要代表.有没有简单的方法来选择这些的子集,只对那些进行反向工程?
entity-framework reverse-engineering ef-code-first visual-studio-2012
电报机器人fileid用来下载文件.我如何fileid从Telegram客户端(My Unofficial版本)获取此信息?mtproto具有此位置类的文件指示其地址.
文件位置参数
问题是我不知道如何生成fileid适合File Location类中机器人的那个.
更新1:
我试过做一些逆向工程.所以,我发现File Location课堂和课堂之间有一些关系FileId.
这是我的File Location 样本地址.
0 //此字段仅适用于秘密聊天0 //此字段仅适用于秘密聊天429640340199BCA94 HEX-3528741004939935589(CF0764C08833409B HEX)//根据TG文档,它应该是文件CheckSum60051775 HEX根据我从Bot中检索FileID到的前一FileLocation课,这是我的意思:
AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI很明显,FileID价值是Base64格式的.所以我把它解码了:
0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202现在我们可以看到FileLocation这个十六进制值中的值:
0200030400032FA8311B4E8BF30D2784D3BCED45B789android ×2
assembly ×2
c ×2
c++ ×2
apk ×1
c++11 ×1
c++14 ×1
constexpr ×1
decompiling ×1
delphi ×1
disassembly ×1
executable ×1
file-format ×1
kernel ×1
magic-mouse ×1
mtproto ×1
mysql ×1
postgresql ×1
proguard ×1
telegram ×1
telegram-bot ×1
windows ×1
x86 ×1